我正在为我的应用程序创建一个服务线程,该线程将执行后台任务,因此只有在我的主线程正在运行时才会使用它。
那么我应该将它声明为 Daemon 吗?
在 Android 上,最好确保明确管理线程。告诉他们何时终止。
请参阅此处的相关讨论。他们没有找到解决方案,而是观察了长期存在的线程:
请注意,此平台不保证标准 Java 关闭挂钩:
http://developer.android.com/reference/java/lang/Runtime.html#addShutdownHook%28java.lang.Thread%29
因此,与其依赖(未记录的?)相信 Android 无论如何都会正确地杀死您的 VM 并猜测守护程序/不是守护程序,控制线程似乎更好。
并不真地。Android 没有main()
应用程序的方法,它们不会退出,而是由系统管理。如果它决定终止您的应用程序以释放资源,它(很可能)不会关心您是否有守护线程。