私は活動を持つアンドロイドアプリケーションを開発しています。そのアクティビティには、FragmentStatePagerAdapterを使用して2つのフラグメントをロードするViewPagerがあります。Androidの断片:バックグラウンドから来たときにnullを返すgetActivity()
このアダプタは、ActivityのonResumeメソッドで再作成されています。
これはバグがどのように表示されるかである:作成された活性を有する
、私は(デバイスのホームボタンを使用して)バックグラウンドで私のアプリを入れて、私は他のアプリケーション(大量のメモリを消費することに特別にそれらを)開きます。その後、私はバックグラウンドからアプリケーションを再び開きます。私はgetActivity()メソッドは、この時点でnullを返すことがわかっデバッグ中
public void doSomething(){
if(getActivity() != null) {
((HomeActivity) getActivity()).doThings():
}
}
:私はviewPagerにある断片の一つで、このような方法があります。 doThings()メソッドは決して実行されません。私はまた、フラグメントのビューが作成されていることに気付きました。
アプリのバックグラウンドでメモリを消費する他のアプリを開かないと、私はそのような問題は発生しません。
オーバーフローメモリエラーですか?なぜフラグメントが正しくロードされているように見える場合、getActivity()メソッドはnullを返しますか?
はあなたのフラグメントでonAttach(Activity)メソッドをオーバーライドして、そこに自分の活動への参照を取得することができ、事前
私は、これはあなたを助けることができると思う: http://stackoverflow.com/questions/11536166/android-get-activity-returns-null – beeb
このリンクはまたあなたを助けることがあります。http://stackoverflow.com/questions/ 14035090/how-to-get-existing-fragments-when-using-fragmentpageradapter :) – GReaper