18

onSaveInstanceState を使用して正常に保存および復元した変数があります

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState); // the UI component values are saved here.
    outState.putDouble("VALUE", liter);
    Toast.makeText(this, "Activity state saved", Toast.LENGTH_LONG).show();
}

ただし、これはアクティビティが破棄された場合にのみ機能します。onPause() メソッドをオーバーライドして同じ変数を保存し、アクティビティが一時停止されていないときに戻ることで、これを行う方法についてのアイデアを大歓迎します

4

3 に答える 3

39

あなたが発見onSaveInstanceStateしたように、それがOSによって破壊された後、アクティビティの同じいわゆる「インスタンス」を再作成する必要がある状況でのみ役立ちます。通常、それはバックスタックで遠すぎてメモリの下で生き続けることができないためです。プレッシャー。

データを保存するonPauseことは、アクティビティの1回の実行を超えて持続する永続性を実現する方法です。これを機能させるには、次のようないくつかのオプションがあります。

  • 共有設定
  • ファイル
  • データベース
  • コンテンツプロバイダー

これらの各オプションの詳細については、このドキュメントを読むことをお勧めします。

http://developer.android.com/guide/topics/data/data-storage.html

于 2011-12-07T04:38:08.073 に答える