目前,我的应用程序正在处理一个http帖子和Async任务中的其他一些东西,然后当任务完成并调用onPostExecute时,我会尝试通过片段事务重定向到另一个片段。事实证明这非常棘手,我正在寻找处理这种情况的替代方案,而不尝试在onPostExecute中提交事务。谢谢!
编辑:这是从onPostExecute ...
调用的方法private void callback(boolean submissionSuccessful)
{
if (submissionSuccessful)
{
FragmentManager fragmentManager = getActivity()
.getSupportFragmentManager();
Fragment f = new CompletedFragment();
Bundle args = new Bundle();
args.putString("id", reportToSubmit.getReferenceId());
f.setArguments(args);
fragmentManager.beginTransaction()
.replace(R.id.content_frame, f, "completed").commit();
}
else
{
Toast.makeText(getActivity(), getResources().getString(R.string.report_error),
Toast.LENGTH_LONG).show();
}
}
原因如下:用户完成向导(ViewPager),提交,处理时显示进度对话框,完成后onPostExecute提交一个确认片段,让用户知道该过程已完成。
答案 0 :(得分:0)
逻辑看起来很不错。我不确定你想要改变什么。
2件事:
Activity
进行转换(移动回调方法)。这将这个片段与第二个片段分离,这被认为是一种良好的实践'。onPostExecute
中,Fragment
可能不会附加到Activity
,getActivity()
将返回null
}。您可以取消AsyncTask
中的onPause
,或在isAdded
中查看onPostExecute
。