9

我正在为我的应用程序创建一个服务线程,该线程将执行后台任务,因此只有在我的主线程正在运行时才会使用它。

那么我应该将它声明为 Daemon 吗?

4

2 回答 2

4

在 Android 上,最好确保明确管理线程。告诉他们何时终止。

请参阅此处的相关讨论。他们没有找到解决方案,而是观察了长期存在的线程:

为了在应用程序退出时终止工作线程,我们有什么钩子

请注意,此平台不保证标准 Java 关闭挂钩:

http://developer.android.com/reference/java/lang/Runtime.html#addShutdownHook%28java.lang.Thread%29

因此,与其依赖(未记录的?)相信 Android 无论如何都会正确地杀死您的 VM 并猜测守护程序/不是守护程序,控制线程似乎更好。

于 2012-10-17T08:52:11.670 回答
2

并不真地。Android 没有main()应用程序的方法,它们不会退出,而是由系统管理。如果它决定终止您的应用程序以释放资源,它(很可能)不会关心您是否有守护线程。

于 2012-10-17T08:44:29.877 回答