我正在为我的应用程序创建一个服务线程,这个线程将执行后台任务,因此只有在我的主线程正在运行时它才会被使用。
那么我应该将它声明为守护进程吗?
答案 0 :(得分:4)
在Android上,最好确保明确管理线程。告诉他们何时终止。
请参阅此处的相关讨论。他们没有找到解决方案,而是观察了长生命线:
What hooks do we have in order to do worker thread termination on application exit
请注意,此平台无法保证标准Java关闭挂钩:
http://developer.android.com/reference/java/lang/Runtime.html#addShutdownHook%28java.lang.Thread%29
那么,不是依赖于(未记录的)相信Android会正确杀死你的VM并猜测守护进程/非守护进程,而是控制线程似乎更好。
答案 1 :(得分:2)
不是真的。 Android没有针对应用的main()
方法,但它们不会退出,而是由系统管理。如果它决定杀死你的应用程序以释放资源,它(很可能)不关心你是否有守护程序线程。