有没有办法强制不重新创建IntentService?

时间:2011-02-05 22:19:15

标签: android service android-intent

我有问题,因为两个后续的startService调用清除了IntentService的私有数据 - 我假设服务在第一次调用完成后停止,然后在处理第二次调用时重新创建。是否有任何方法可以强制不重新创建IntentService,或者在后续的两个startService例程调用中将此私有数据存储为相同?

2 个答案:

答案 0 :(得分:3)

如果您想尝试来跨实例保存数据,可以将其放在静态变量中。一个典型的例子:你有一些加载磁盘的状态,所以你创建一个全局单例,在第一次实例化时加载数据,然后对它的进一步请求使用相同的实例(不重新加载数据)。当服务的新实例在其onCreate()中检索单例时,如果先前的服务实例已经请求它,则不需要重新加载它。

在进行此类设计时,了解流程的生命周期以及何时可以将其杀死非常重要。否则,当您的进程在正常操作期间被终止时,您可能会在相当随机的点丢失数据。

答案 1 :(得分:2)

  

我假设服务在第一次调用完成后停止,然后在处理第二次调用时重新创建。

没有。只有在收到所有Intents时才会停止。