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

时间:2013-05-16 14:21:28

标签: android android-activity fragment

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




}

0 个答案:

没有答案