0

私は Android アプリケーションと、いくつかの内部データを保持する独自の Application 派生クラスを持っています。とりわけ、いくつかの文字列フィールドがあります。問題は、アプリケーションをフォアグラウンドに置き、他のアプリケーションで作業し、再び自分のアプリに切り替えると、システムによって強制終了されたためにアプリが再起動される可能性があることです。残念ながら、アプリケーション オブジェクトの onCreate メソッドが呼び出されず、すべてのフィールドが null に設定されているため、アプリケーション オブジェクトは再度作成されないようです。アクティビティは再作成されますが、アプリケーションのすべてのオブジェクト フィールドが null です。Application.onCreate メソッドはいつ呼び出されますか? 対処方法は?

4

2 に答える 2

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;
 }
于 2012-12-31T11:53:49.003 に答える
0

アプリケーションonCreate()は、そのライフサイクル中に1回だけ呼び出されます。アプリケーションが開始されたときのみ。

以下のthepooshが示唆するように、答えは有効です。アプリケーションが強制終了された場合でも、データは共有設定で保存されます。

于 2012-12-31T12:19:27.347 に答える