Android - 防止进程被杀死
Android - Prevent process from being killed
我有一个带有 ContentProvider 的应用程序,它根据对自定义 call() API 的调用来执行代码。有时,这些执行会剥离线程,这些线程会执行可能需要很长时间才能完成的事情,例如在 GPRS 上下载几百 MB,所以我想确保我的进程在此期间没有被终止。
据我了解,ContentProvider 没有特殊的优先级,因此可能会被任意杀死。但是,前台服务具有更高的优先级,所以我在想:是否足以在我的应用程序(相同进程)中放入一个不执行任何操作的虚拟前台服务,以防止它被杀死?因为 Android 只能杀死整个进程,而不能单独杀死 ContentProvider 的派生线程,对吗?
或者是否有更好的方法来实现我想要的?
ContentProvider API 已经实现并且似乎适合手头的任务,所以我不想用某种服务接口重写所有内容。
Is it enough to just put in a dummy foreground service that does nothing into my app (same process), to prevent it from being killed?
很有可能,是的。理想情况下,您提出的 Notification
让用户可以控制后台工作,例如停止它。
Because Android can only kill the entire process, not the ContentProvider's spawned threads alone, right?
正确。
我有一个带有 ContentProvider 的应用程序,它根据对自定义 call() API 的调用来执行代码。有时,这些执行会剥离线程,这些线程会执行可能需要很长时间才能完成的事情,例如在 GPRS 上下载几百 MB,所以我想确保我的进程在此期间没有被终止。
据我了解,ContentProvider 没有特殊的优先级,因此可能会被任意杀死。但是,前台服务具有更高的优先级,所以我在想:是否足以在我的应用程序(相同进程)中放入一个不执行任何操作的虚拟前台服务,以防止它被杀死?因为 Android 只能杀死整个进程,而不能单独杀死 ContentProvider 的派生线程,对吗?
或者是否有更好的方法来实现我想要的?
ContentProvider API 已经实现并且似乎适合手头的任务,所以我不想用某种服务接口重写所有内容。
Is it enough to just put in a dummy foreground service that does nothing into my app (same process), to prevent it from being killed?
很有可能,是的。理想情况下,您提出的 Notification
让用户可以控制后台工作,例如停止它。
Because Android can only kill the entire process, not the ContentProvider's spawned threads alone, right?
正确。