2010-07-13 134 views
1

我使用CountDownTimer的onTick(long l)函数来检查一些条件,如果他们满意,我调用一个活动的函数来执行一些与UI相关的任务。然而,我想知道是否有可能在活动被破坏并由于方向更改而重新创建时,要运行onTick(),并且有可能在我的活动中调用可能尚未创建的活动?活动生命周期相关问题

如果是这样,可以更正这个问题的任何想法?

回答

0

使用Service可能是一个不错的选择。这些并不是像活动一样创建和销毁的。当您的活动消失时,服务将继续运行(除非在特殊情况下)。因此,如果您希望跨Activity实例继续您的计时器,请尝试使用服务。

友好的警告:当设备内存不足时,服务比活动更容易被杀死(最好是移除用户可以看到的东西,而不是用户看不到的东西)。假设你希望这个定时器从一开始就工作,直到你明确地终止它,那么最好是在服务被操作系统删除的时候继续复活服务。你通过使onStartCommand方法返回START_REDILIVER_INTENT常量来做到这一点。尽管这并不能保证该服务在整个时间间隔内保持活跃,但这确实意味着它最终会回来。如果您的应用程序不消耗太多内存,则不必担心这一点。如果是这样,那么您需要在使用计时器时具有创造性。

0

另一个想法:handle the screen orientation change yourself,以防止您的应用程序被重置。这种方法有其消极后果的份额,在Android开发者网站上的声明:

处理的配置改变自己可以使它更难以利用替代资源,因为系统不会自动为您应用这些。这种技术应该被认为是最后的手段,不建议用于大多数应用。

根据您的应用程序,这可能是好的。无论哪种方式,对您的清单文件进行相对简单的更改,所以您可以试试看看会发生什么。