我有一个IntentService,即使应用程序停止工作,它也应该无限期地工作。
这是我的服务:
public class TestService extends IntentService {
public TestService() {
super("test");
}
@Override
protected void onHandleIntent(Intent intent) {
while (true) {
// do works
SystemClock.sleep(60000);
}
}
}
并显示:
<service android:name=".TestService" />
只要我没有从最近的活动列表中删除我的应用程序,我的服务就可以正常工作,但我希望它始终有效。
根据我的搜索,我意识到如果我在服务的清单和覆盖onTaskRemoved
方法中将android:stopWithTask
设置为false
,我将能够处理我的服务。
<service
android:enabled="true"
android:name=".TestService"
android:exported="false"
android:stopWithTask="false" />
但这需要 API 级别 14 或更高,而我的应用 API 级别为 8。
如何解决我的问题?
如果您希望服务无限期地运行,那么为什么要使用IntentService。您应该使用将无限期运行的服务。IntentService将在完成要求它完成的任务后自行关闭,如果有任何请求,它将打包来自quene的另一个请求。
请查看以下链接或链接