【问题标题】:Android - Prevent process from being killedAndroid - 防止进程被杀死
【发布时间】:2022-01-18 15:35:45
【问题描述】:

我有一个带有 ContentProvider 的应用程序,它根据对自定义 call() API 的调用执行代码。有时这些执行会分离出执行可能需要很长时间才能完成的事情的线程,例如在 GPRS 上下载几百 MB,所以我想确保我的进程在此期间不会被杀死。

据我了解,ContentProviders 没有特殊优先级,因此可能会被任意杀死。但是,前台服务具有更高的优先级,所以我在想:是否只需在我的应用程序(同一进程)中放入一个不执行任何操作的虚拟前台服务,以防止它被杀死?因为 Android 只能杀死整个进程,不能单独杀死 ContentProvider 产生的线程,对吧?

或者有没有更好的方法来实现我想要的?

ContentProvider API 已经实现并且似乎适合手头的任务,所以我宁愿不使用某种服务接口重写所有内容。

【问题讨论】:

    标签: android process android-contentprovider kill-process foreground-service


    【解决方案1】:

    只需在我的应用程序(相同进程)中放入一个不执行任何操作的虚拟前台服务,以防止它被杀死就足够了吗?

    很可能,是的。理想情况下,您提出的Notification 可以让用户对后台工作进行一些控制,例如停止它。

    因为 Android 只能杀死整个进程,而不能单独杀死 ContentProvider 产生的线程,对吧?

    正确。

    【讨论】: