暂停活动时删除对话框片段

mid 发布于 2019-03-15 android 最后更新 2019-03-15 14:53 5 浏览

我有通用的AsyncTask,它在启动时将DialogFragment添加到currentActivity,并在完成时将其删除。它工作的很好,但是当我的活动在后台任务完成时,它会崩溃,出现错误“onSaveInstance后无法执行”,因为它会在活动暂停时尝试删除片段。 在恢复我的活动后,我能做些什么来移除碎片,以及如何检查我现在无法执行该操作,因为活动已暂停? 我在几个不同的活动中使用它,所以我不想添加基于onPause / onResume事件的字段“isActive”,因为我必须在每个活动中重写它们。在下面的示例WaitingPopupFragment是我的类添加对话框片段的活动,并将其删除在“隐藏”。

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();
    }
}
已邀请: