我有通用的AsyncTask,它在启动时将DialogFragment添加到currentActivity,并在完成后将其删除。它运行良好,但当任务完成后我的活动处于后台时,它崩溃时出现错误“onSaveInstance后无法执行此操作”,因为它会在活动暂停时尝试删除片段。 恢复活动后我该怎么做才能删除片段,如何检查我现在不能这样做,因为活动暂停了?
我在几个不同的活动中使用它,所以我不想基于onPause / onResume事件添加字段“isActive”,因为我必须在每个活动中覆盖它们。在下面的示例中,WaitingPopupFragment是我的类,它将Dialog Fragment添加到activity,并在“hide”中删除它。
public abstract class AsyncTaskWithWaiterAndException<Param,Progress,Result> extends
AsyncTaskWithExceptionHandler<Param,Progress,Result>
{
protected FragmentActivity parent;
public AsyncTaskWithWaiterAndException(FragmentActivity parent)
{
this.parent = parent;
}
@Override
protected void onPreExecute()
{
WaitingPopupFragment.Show(parent);
}
@Override
protected void onPostExecute(Result result)
{
WaitingPopupFragment.Hide();
}
}