【发布时间】:2014-05-26 08:54:43
【问题描述】:
我想至少我想做的是在 DialogFragment 被解除时刷新 ListView。整个刷新过程在我的 AsyncTask 中。我发现实际上有很多问题/答案,但对我的情况没有任何帮助。
我试过了:
1)onDismiss 在我的DialogFragment 中,获取AsyncTask 本地类的实例并执行它。但是我遇到了一堆错误,我认为因为我试图创建一个新的 Activity 并且每次对话框被关闭时,实际上没有任何意义,而且会占用大量内存。
@Override
public void onDismiss(DialogInterface dialog) {
MainActivity outterObject = new MainActivity();
MainActivity.LoadApplications buffer = outterObject.new LoadApplications();
buffer.execute();
}
2)在 MainActivity 中的 onResume,因为我认为 Activity 在 Dialog 出现时进入状态“暂停”。但它只会在我关闭并再次打开我的应用程序时刷新 ListView。
@Override
protected void onResume() {
super.onResume();
new LoadApplications().execute();
}
【问题讨论】:
-
为什么不直接从对话框片段的onclick事件中调用asynctask呢?
-
我的 AsyncTask 类在显示 ListView 之前做了很多工作,您可以选择很多安装在设备上的应用程序。所以每次点击应用都会让用户等待 3-4 秒,然后才能选择更多应用。这也是我需要在 MainActivity 中调用本地类的第一种情况。
-
需要更多关于你到底在做什么的信息?
-
在 dialogfragmet 被解除后更新我的主要活动的 ListView。
-
你可以通过在你的异步任务中实例化一个进度对话框来显示一个“纺车”,告诉用户正在处理,当处理完成后,你可以继续你的列表视图
标签: android listview android-asynctask dialogfragment