2

SharedPreferencesから値を取得し、静的変数内に格納しようとしています。問題は、静的変数からnull値を取得しているのに、SharedPreferencesに値があることです。私はこのプロセスを介して価値を保存しました:

 SharedPreferences sp = u.returnShare();
    SharedPreferences.Editor editor = sp.edit();

    StaticVariables.userId = sp.getString("UserId", "default");
4

2 に答える 2

3

静的変数は使用しないでください。これは悪い習慣です。Androidはいつでもアプリケーションのプロセスを破棄し、後で必要に応じてアクティビティを再作成することでアプリケーションを再作成できます。「最初の」アクティビティで静的変数を作成している場合、2番目または3番目が最初に開始されたときに静的変数は初期化されません。

于 2013-01-11T06:47:16.643 に答える
3

静的変数は、Androidの長期保存には適していません。システムは、バックグラウンドにあるときはいつでもアプリケーションを強制終了する可能性があります(たとえば、他のタスクにメモリが必要な場合)。アプリを再起動すると、静的変数に保存されているすべての値が失われます。

于 2013-01-11T06:47:24.997 に答える