Java 我的应用程序&x27;他的服务不断被破坏

Java 我的应用程序&x27;他的服务不断被破坏,java,android,android-asynctask,Java,Android,Android Asynctask,我有一个异步任务池,这些任务将状态数据传递回执行它们的服务,但它们一直被Android杀死 我无法使用IntentService,因为该服务正在跟踪UI和异步任务使用的状态 我如何: 1) 防止服务被终止 2) 用更适合此用例的东西替换服务或异步任务?您应该使用。安卓操作系统可以在资源不足的情况下终止该服务,但它总是会保留前台服务 Android系统只有在内存不足时才会强制停止服务 并且它必须为具有用户权限的活动恢复系统资源 集中如果服务绑定到具有用户焦点的活动, 那么它被杀死的可能性就小了,如

我有一个异步任务池,这些任务将状态数据传递回执行它们的服务,但它们一直被Android杀死

我无法使用IntentService,因为该服务正在跟踪UI和异步任务使用的状态

我如何: 1) 防止服务被终止 2) 用更适合此用例的东西替换服务或异步任务?

您应该使用。安卓操作系统可以在资源不足的情况下终止该服务,但它总是会保留前台服务

Android系统只有在内存不足时才会强制停止服务 并且它必须为具有用户权限的活动恢复系统资源 集中如果服务绑定到具有用户焦点的活动, 那么它被杀死的可能性就小了,如果服务被声明为 在(稍后讨论)中运行,则几乎永远不会 杀了

注意:你还应该考虑另一件事

警告:服务在其宿主进程的主线程中运行 服务不创建自己的线程,也不在单独的线程中运行 过程(除非您另有规定)。这意味着,如果 服务将执行任何CPU密集型工作或阻塞操作 (如MP3播放或网络),您应该创建一个新线程 在服务范围内完成该工作。通过使用单独的线程,您可以 将降低应用程序不响应(ANR)错误和 应用程序的主线程可以保持专用于用户交互 与你的活动


当应用程序不在前台时,没有任何东西可以阻止应用程序的进程终止。当有更高优先级的事情需要资源时,安卓会简单地回收资源。