2

我有通用的 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();
    }




}
4

0 回答 0