我正在寻找一种方法来保持对象/实例的引用,该对象/实例是服务的成员对象。我知道在活动的情况下,我们可以通过提供的onSaveInstance
方法保存它。但是,我找不到任何类似的服务方式。
我可以使用静态对象,但它不安全,因为没有保证,如果引用在下次有效时会创建服务。
另一种可能的方法是,我将所有数据存储在存储和放大器上。稍后再次创建服务时,我可以从存储中读取数据。然后遍历另一个班级提供的信息/数据。找到从存储中读取的信息的相关参考,我认为这是非常昂贵的执行时间间隔。
所以我正在寻找一种摆脱所有这一过程的方法。只要任务/应用程序正在运行,就会在内存中保留强引用(服务中的对象)。
此致
答案 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对象用作应用程序的全局存储。