为任务的生命周期保持对象的引用

时间:2014-08-11 06:48:25

标签: android service reference

我正在寻找一种方法来保持对象/实例的引用,该对象/实例是服务的成员对象。我知道在活动的情况下,我们可以通过提供的onSaveInstance方法保存它。但是,我找不到任何类似的服务方式。

我可以使用静态对象,但它不安全,因为没有保证,如果引用在下次有效时会创建服务。

另一种可能的方法是,我将所有数据存储在存储和放大器上。稍后再次创建服务时,我可以从存储中读取数据。然后遍历另一个班级提供的信息/数据。找到从存储中读取的信息的相关参考,我认为这是非常昂贵的执行时间间隔。

所以我正在寻找一种摆脱所有这一过程的方法。只要任务/应用程序正在运行,就会在内存中保留强引用(服务中的对象)。

此致

1 个答案:

答案 0 :(得分:0)

您可以使用应用程序类将数据保存为

public class MyApplication extends Application 
{     
     public MyDataClass data = new MyDataClass();
}

然后通过以下方式在任何活动/服务中调用它:

MyApplication appState = ((MyApplication)this.getApplication());
appState.data.useAGetterOrSetterHere(); // Do whatever you need to with the data here.

在你的清单中提到它如下::

<application android:name="yourpkgname.MyApplication"/>

更多信息就像

Application对象是一个对象,其生命周期与我们的Application相同。

当应用程序启动时,此对象由Android Framework自动创建。

如果要在应用程序的多个活动之间共享数据,或者希望在应用程序级别保留某些内容。在该方案中,您可以将Application对象用作应用程序的全局存储。