2017-07-27 7 views
1

私のアプリケーションでは非同期タスクが多数使用されています。私はonPostExecuteでUiオペレーションを実行します。 私は一般に、非同期タスクが実行されている間にスピナーを表示します。終了したら、スピナーを削除してUiを変更するか、新しいフラグメントを起動します。Android。フラグメントが一時停止しているときに、onPostExecuteでuiオペレーションを実行します。

非同期タスクが終了したときにアプリケーションがフォアグラウンドにないときに問題が発生しています。私はフラグメントが一時停止しているかどうかをチェックすることによってエラーを処理しています。一時停止している場合、私はonResumeをチェックしてonPostExecuteコードを実行するboolean isPausedを持っていますが、

onPostExecute

if (!isPaused) { 
    getFragmentManager().popBackStackImmediate(); 
    } else { 
    wasPaused= true; 
} 

、その後、onResume

@Override 
public void onResume() { 
    super.onResume(); 
    isPaused = false; 
    if (wasPaused) { 
     getFragmentManager().popBackStack(); 
     wasPaused= false; 
    } 
} 

答えて

0

活動が一時停止しているとしてあなたは(onPause()と呼ばれる)のUIを更新したり、バックグラウンド活性のフラグメントを起動することはできません。あなたがしたことは正しいことです。

+0

私は非常に多くの非同期タスクを持っているので、これはちょっと面倒で多くの作業があるようです。 これを達成するためのより簡単で簡単な方法はありますか? – GudniPall

+0

あなたの正確な意図は何か分かりませんが、アクティビティがバックグラウンドのときにUIを更新する用途はありません。 UIはユーザーが見るときにのみ重要なので、onResume()は適切な場所です。 – Nithin

+0

ありがとうございました:) – GudniPall

関連する問題