2016-11-17 14 views
0

ユーザーが自分のアプリを使用していて、自宅をクリックしていくつかの他のアプリにアクセスして戻ってきた場合、アクティビティは再作成され、getActivityは私の断片。getActivityアプリケーションが再開したときにフラグメント内にnullがある

私が見つけた解決策は、静的変数を作成してgetActivityonCreateViewに保存することでした。

私はこれが良い解決策ではないように感じます。私はこれについて行くことができる他の方法はありますか?

私は静的でない変数を使用し、OnCreateViewとonAttachに格納しようとしましたが、getActivityはnullになります。

getActivityを静的変数として保存しないと、エラーが発生します。私はAsyncTask私の断片のProcessDialogのためにそれを使用します。

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference 

ありがとう。

+0

getActivity()をnullにしたときに呼び出すオーバーライドメソッドは何ですか? –

答えて

0

onActivityCreatedを実装していますか?このメソッド内でgetActivityを使用する必要があります。

もう1つの回避策は、あなたのアクティビティを維持するためにonAttachを使用することです。

@Override 
public void onAttach(Activity activity) { 
super.onAttach(activity); 
mActivity = activity; 
} 
+0

ありがとうございますが、私はすでにこれを試しました。変数が静的である場合にのみ機能します。私は静的な変数を使用するように間違っていると感じる。しかし、私が見つけるか、何か他のものを見つけ出すまで、私はこれをやります。 – huey77

1

あなたはonAttach(Activity activity)もnull持っていることを確信している場合は、私はあなたが同じ時間に同じフラグメントの複数のインスタンスを持っている疑いがあります。 onResumeでフラグメントインスタンスを出力し、インスタンスをチェックします。

関連する問題