我有Android应用程序和自己的Application派生类,持有一些内部数据。 其中有一些字符串字段。问题是如果我把应用程序放在前台,在其他应用程序上工作,再次切换回我的应用程序,应用程序可能会重新启动,因为它被系统杀死了。不幸的是,似乎不再创建Application对象,因为没有调用应用程序对象的onCreate方法并且所有字段都设置为null。我的Activity被重新创建,但所有Application的对象字段都为null。 Application.onCreate方法何时被调用?如何处理?
答案 0 :(得分:1)
没有onCreate可以注册到。
在以后的API中有一种方法可以注册到Activity生命周期函数。然后你可以做你想做的事。
基本上,您应该使用SharedPrefrences
来存储信息。
我会做的是:
class MyApp extends Application {
private static String someResource = null;
public static String getSomeResource(Context context) {
if(someResource == null) {
SharedPrefrences prefs = (SharedPrefrences)
context.getSystemService(Context.SHARED_PREFRENCES);
someResource = prefs.getString(SOME_RESOURCE, null);
}
return someResource;
}
答案 1 :(得分:0)
应用onCreate()在其生命周期中只会被调用一次,即只有在应用程序启动时才会被调用。
正如thepoosh below answer所建议的那样,如果您的应用程序被终止,数据仍会以共享首选项保存。