从最近活动列表中删除后,服务将停止



我有一个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的另一个请求。
请查看以下链接或链接

最新更新