2012-12-23 64 views
1

我的活动启动一个倒计时器线程,此线程也将尝试更新UI线程,如果完成Android活动,将完成()杀死我的倒计时器线程?

在倒计时结束前,活动本身可能是finish()。如果活动进行下去,倒计时器会不会也一样?

如果是的话,我可能需要在服务,而不是

+2

你应该尝试一下,这似乎并不是一件很难确定的事情。 –

+0

yes @ A - C这是真的,但我的实际使用案例需要更新UI线程,这是一个listview中的适配器,它从外部存储中缓存的序列化对象中读取,所以所有场景对我来说实际上都是耗时的以分析,特别是如果真正的答案只是“将其移动到服务中” – CQM

回答

1

不一定会运行countdowntimer。 只要进程没有死亡,你的线程就会一直存在。即使您没有前台活动,该进程也不会被操作系统立即杀死。没有他们只是增加了杀死它的可能性。

将线索引用到活动中可能会导致应用程序的内存占用增加,因为您的活动不会被垃圾收集,因为您的线程仍然指向它。在这种情况下,您应该考虑(至少)使用弱引用。

最后,考虑到即使您的应用程序在后台,您的意图是让您的倒计时时间处于活动状态,您应该考虑将其移至服务中。

+0

是的,谢谢,因为我正在写这篇文章,我意识到将它放入服务中会更明智,无论结果如何。但我仍然好奇 – CQM