Fragment 互換パッケージを使用しています。
onAttach の Fragment では、Context
参照を保持しています。
public void onAttach(Activity activity) {
super.onAttach(activity);
Log.w(logTag, "Activity is: " + activity);
mContext = activity;
Log.w(logTag, "mContext is: " + mContext); // <-- Breakpoint here
}
後で、コンテキストを使用します
private String loadExampleSuccessXML () {
try {
AssetManager assets = this.mContext.getAssets(); // <-- Breakpoint here
//Other Stuff
向きを変えると、onAttach は新しいコンテキストを保存しているように見えますが、に到達するとloadExampleSuccessXML
、mContext
null になります。
mContext
が onAttach に保存された後にブレークポイントがありますmContext.getAsssets()
。
アプリを初めて実行すると、デバッガーに mContext の値が表示されます。
のonAttach(), mContext [MyActivity] (id=830010419632)
のloadExampleSuccessXML(), mContext [MyActivity] (id=830010419632)
しかし、その後、構成の変更後
のonAttach(), mContext [MyActivity] (id=830010565472)
のloadExampleSuccessXML(), mContext null
理由がわかりません。どんな助けでも素晴らしいでしょう。