2013-03-25 206 views
8

我新的Android,我没有太多的了解services.i有一个用户界面的活动类,我想让这个活动类在后台运行,当我点击后退按钮。如何让我的活动运行在类似服务后台,plz帮助我..制作活动在后台运行

+1

推出一项服务,在的onPause()方法,在停止的onResume它()。如果您想将活动转变为服务,您应该使用服务。 – 2013-03-25 17:17:47

+0

然后写一个服务? – 2013-03-25 17:20:49

+0

@RaghavSood你能解释一下如何让我的活动变成服务 – 2013-03-25 17:20:50

回答

3

如果您只是想你的活动运行在后面尝试使用

Movetasktoback(true); 
+1

好的。这对我有效.. – 2013-03-26 04:29:25

+2

@ user2208695你能告诉哪里写这个 – 2016-06-22 09:30:47

0

你应该阅读主题开发指南:http://developer.android.com/guide/components/processes-and-threads.html

具体功能doInBackground()从页 示例:

public void onClick(View v) { 
    new DownloadImageTask().execute("http://example.com/image.png"); 
} 

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { 
    /** The system calls this to perform work in a worker thread and 
     * delivers it the parameters given to AsyncTask.execute() */ 
    protected Bitmap doInBackground(String... urls) { 
    return loadImageFromNetwork(urls[0]); 
} 

    /** The system calls this to perform work in the UI thread and delivers 
     * the result from doInBackground() */ 
    protected void onPostExecute(Bitmap result) { 
     mImageView.setImageBitmap(result); 
    } 
} 
+0

我不想让它成为一个线程..我只是想在后台运行这样的服务......我的活动包括电话管理器,广播接收器等,所以不需要把它变成一个线程 – 2013-03-25 17:16:45

+0

@Jesbin MJ检查编辑 – RyPope 2013-03-25 17:17:19

4

你不能真的在背景上运行Activity!当一个活动不在前台时,它会到达onStop,然后系统可以终止它,释放资源,通过onDestroy方法!看到Activity Lifecycle

为了在后台运行,你需要创建有关服务herehereIntentService

和这里ServiceIntentService

结帐的Android Javadoc是一个第三方Android Service Tutorial

编辑:您可能还需要在您的服务和您的活动之间进行沟通,以便您能够通过该项服务:Example: Communication between Activity and Service using Messaging

+0

我已经通过这个,但我没有得到它。如何将我的活动类绑定到服务类 – 2013-03-25 17:28:33

+0

另请参阅上次编辑... – madlymad 2013-03-25 17:29:55

0

看起来好像你想在后台运行一个活动,当它退出。但是,除非它在前台,否则无法运行活动。

为了实现你想要的,在onPause()中,你应该启动一个服务来继续活动中的工作。 onPause()将在您点击后退按钮时被调用。在onPause中,只需保存当前状态,然后将作业传送到服务。当您的活动不在前台时,该服务将在后台运行。

当您稍后返回到您的活动时,请在onResume()中执行一些操作,以将该服务的工作再次转移到您的活动中。