2013-10-11 2 views
9

アクティビティ状態の保存に関する問題が発生しています。私はここで多くの質問を検索して読みましたが、私の質問に対する答えは得られませんでした。onResume()のonSaveInstanceState()バンドルを取得するにはどうすればよいですか?

私は、Activity Aと2 Fragmentsを持っています。 Activityは、Fragmentsによって示されたデータを保持します。 ActivityActivityActivity Aが一時停止(破棄されない)されているため、Intentが呼び出されたときには、とメソッドが呼び出されますので、すべてのデータをonSaveInstaceState()に保存します。

私はAが再び表示されますが、onCreate()方法はActivityが破壊されていなかったので、代わりにonResume()メソッドが呼び出される呼び出されていないが、私はActivity AとIで私の変数の状態を失ったボタンActivityをバック使用して私の設定から復帰onCreate()が呼び出されていないのでonSaveInstanceState()に保存したBundleにアクセスできません。

onSaveInstanceState()は、画面を回転させるときに便利ですか? onSaveInstanceState()に保存したすべてのデータにアクセスするにはどうすればよいですか?または、後でonResume()にアクセスするには、ファイルまたはSharedPrefsに保存する必要がありますか?

+1

...あなたはAcitivy Aで宣言あなたのインスタンス変数のデータを失ってしまいましたか?彼らはヌルになった? –

答えて

23

これは役に立ちますか?
onStop()getIntent().putExtras()を入力して、データをアクティビティのバンドルに保存します。
2. onResume()getIntent().getExtras()を入力して検索します。

そして、あなたがアクセスする前にバンドルをヌルチェックを行う必要があります:)

+0

うまくいった!データを保存するには、まだ何も保存していないときに 'getIntent()。getExtras()'がnullであるため、 'getIntent()。putExtras()'を使用しました。 – Andres

+0

例を共有できますか?私はこれをonStop/onResumeに実装しようとしていますが、多くの運がありません。 Androidの開発者は 'onSaveInstanceState'、' onRestoreInstanceState'と 'onCreate'を使用するために私たちをお勧めしますが、それは非常に不安定であるか – snapplex

+0

は、それは信じられないです。これを共有してくれてありがとう、それは私の問題を解決しました –

-3

あなたがバンドルまたは変数にSavedInstanceからすべてのものを保存することができます。

などonActivityCreated方法でデータを設定します。それはあまり意味を作っていない

@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onActivityCreated(savedInstanceState); 

     // Do your stuff here 

} 
+0

時々onActivityCreatedが呼び出されません。 –

関連する問題