Android Application类 - 字段成员的生命周期

时间:2012-12-31 11:47:56

标签: java android eclipse android-activity

我有Android应用程序和自己的Application派生类,持有一些内部数据。 其中有一些字符串字段。问题是如果我把应用程序放在前台,在其他应用程序上工作,再次切换回我的应用程序,应用程序可能会重新启动,因为它被系统杀死了。不幸的是,似乎不再创建Application对象,因为没有调用应用程序对象的onCreate方法并且所有字段都设置为null。我的Activity被重新创建,但所有Application的对象字段都为null。 Application.onCreate方法何时被调用?如何处理?

2 个答案:

答案 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所建议的那样,如果您的应用程序被终止,数据仍会以共享首选项保存。

相关问题