2017-03-03 6 views
0

私はaを持っています。DialogDialogFragment)が画面に表示されています(MainAcitivityにAオブジェクトを作成しています)、Aのメンバー値はmContextです。 mContextを更新したいのですが、どうすればいいですか?画面回転後のAndroid Dialogクラスオブジェクトの動作

public class MainActivity extends AppCompatActivity { 
.... 
A mDialog = new A(this); 
mDialog.showDialog(); 
.... 
} 

public class A extends Dialog { 
    Context mContext; 
    .... 
    public void showDialog() { 
     .... 
    } 

    private void functionB() { 
     //need to use the updated mContext; 
    } 
} 
+0

mContextを更新するとどういう意味ですか?あなたはそれで何をしようとしていますか? –

+0

以前のmContextを使用した場合、mContextに接続されているリスナーがあります。以前のアクティビティが破棄されているためクラッシュする可能性があります。 – newszer

+0

アクティビティが破棄されたときにダイアログを閉じてみてください。その後、アクティビティが再作成されます。 onSaveInstanceStateにコンテキストを保存することはできません。 –

答えて

0

私はデバイスを回転させると、ダイアログがonStopを呼び出してからonStartを呼び出すと予想します。必要に応じてオーバーライドし、instanceStateを保存および復元できます。

https://developer.android.com/reference/android/app/Dialog.html

しかし、私は質問がとても曖昧であるため、それはあなたをどのように役立つかわかりません。

+0

アクティビティライフサイクルまたはダイアログクラスのonStopとonStartは実行されますか? – newszer

+0

私はダイアログクラスを参照していました。リンクを参照してください。 –

関連する問題