2012-07-06 60 views
2

我在onDestroy服务中有一些方法。必须调用它们来设置一些应用程序设置。也许有可能接收某种广播来设置设置值?据我所知,这个服务在系统重启后不会被激活。有任何想法吗?如何在系统关闭时关闭服务?

回答

0

我有在的onDestroy一些方法,我的服务

onDestroy()上无法保证服务的调用。例如,如果用户强行阻止了您的设置,或者您遇到了异常,或者Android急需RAM并终止您的过程,则不会调用onDestroy()

必须调用它们才能设置一些应用程序设置。

那么你应该在除onDestroy()以外的其他地方打电话给他们。

Maby有可能收回某种广播甚至设置设置值?

你可以尝试让你的服务监听ACTION_SHUTDOWN广播,但不会解决你的问题,因为有其他方案中onDestroy()不会被调用,如上所述。

正如我anderstand,这项服务在系统重启将不活动

正确的。

+0

我遇到了一个问题,因为onDestroy在关闭期间没有被调用。 CommonsWare在官方文档中说,onDestroy()是放置关闭代码的地方,并没有警告说没有保证。然而,你似乎是正确的 - 是否有官方文件的地方呢? – 2012-08-09 15:04:40

+0

@Kevin:看看关于Activity的文档,特别是生命周期图。 – CommonsWare 2012-08-09 15:47:23

+0

我想明白为什么它会这样。在系统中不需要调用onDestroy,因为应用程序应该在意外关闭时准备好,即。有人删除了baterry。最好的方法是在活动开始时设置这些程序设置。起初,我在设置开始时遇到了一些问题,但经过一段时间的艰苦思考后,我做到了。现在我确定,当发生错误时,在reebot之后,我的应用程序将正常工作。 – 2012-08-10 09:40:56