Android从activity / asynctask启动服务

时间:2011-10-06 22:07:09

标签: android service android-activity lifecycle

我看到很多关于从服务启动活动的问题,但我不确定如何从活动中启动服务。

我希望在asynctask中发生这种情况

用户加载活动时,会完成一些阻止后台处理,并启动服务。

此服务在更深层次的背景中有自己的逻辑,可以通过对可视化活动中的变量进行更改来修改

如何做到这一点?我已经阅读了一些教程,但仍然没有找到它直观

2 个答案:

答案 0 :(得分:2)

只需使用startService(),意图引用您的服务。没什么特别的。如果需要传递参数,可以在Intent的附加内容中设置它们。参看http://developer.android.com/reference/android/content/Context.html#startService(android.content.Intent

答案 1 :(得分:0)

仅使用以下代码即可启动服务。

Intent intent = new Intent(MainActivity.this,MyService.class);
startService(intent);

根据您的问题和我的理解

来自Activity的简单启动服务,或者您可以以相同的方式从异步任务中启动。 根据您的流程,我只提供示例代码

MainActivity.java

MyAsyncTask myTask = new MyAsyncTask(this);
myTask.execute();

ASYNC任务 doInBackground()的goto方法,您可以使用intent启动服务。

Intent intent = new Intent(MainActivity.this,MyService.class);
startService(intent);

现在,您想更新MainActivity.java,然后可以使用界面,也可以根据需要通过输入 putExtra()方法之类的值来启动Activity(intent) 。但我建议您使用界面从服务中更新您的活动。