FrameLayout
という主要なアクティビティがあります。ここでは、メニュー選択に基づいてフラグメントを動的に変更します。最近(多分新しいSDKのバージョンと?)Android:asynctaskの実行に失敗したときにフラグメントを置き換えます。
は、私は(基本的にonTop
)AsyncTask
は、現在のフラグメント(SwipeRefresh
)上で実行されていると私は別の断片と交換したい場合、既存のフラグメントが表示されたままになりますことを観察し、新しいものは隠されています(恐らく - 私はそれがダイアログを表示するか、物事をするので、それが表示されていないことを知っています)。また、バックを押すと、 'root'フラグメント(タイトルバーもテキストを変更する)に戻りますが、実行中の非同期タスクを持つものは、FrameLayout
に永遠に(アプリケーションが終了するまで)ぶら下がっています。どんな助けでも本当に感謝しています。 フラグメントの交換:あなたのフラグメントのonPauseまたはonStopコールバックで実行されているAsyncTaskをシャットダウンする
getSupportFragmentManager()
.beginTransaction().replace(R.id.container, targetFragment, "fragment") .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();
おかげで、私は、これが問題だと思いました。さて、私はどのくらいうまくいくかはわかりませんが、onStop()のタスクで 'cancel()'を呼び出し、非同期タスクで 'isCancelled()'をチェックします。 –