我想知道我应该如何解决一个问题。
当我开始一个活动时,我使用一个AsyncTask
.
当用户在菜单上选择一个选项时,我使用缓存的数据。
如果他在数据仍在下载时选择了选项怎么办?在不阻塞 UI 的情况下等待数据的最佳方式是什么?
编辑:我不想更改菜单/禁用该选项。我想在等待数据完成下载时显示一个微调器。
谢谢
我想知道我应该如何解决一个问题。
当我开始一个活动时,我使用一个AsyncTask
.
当用户在菜单上选择一个选项时,我使用缓存的数据。
如果他在数据仍在下载时选择了选项怎么办?在不阻塞 UI 的情况下等待数据的最佳方式是什么?
编辑:我不想更改菜单/禁用该选项。我想在等待数据完成下载时显示一个微调器。
谢谢
禁用/启用 onMenuOpened() 中的项目:
@Override
public boolean onMenuOpened(int feature, Menu menu) {
if (menu != null) {
menu.getItem(INDEX_FOR_THE_MENU_ITEM).setEnabled(stuffIsAvailable);
}
return super.onMenuOpened(feature, menu);
}
编辑 - 显示进度对话框:
ProgressDialog dialog = new ProgressDialog(context);
dialog.setMessage(context.getString(dialogTextResourceId));
dialog.show();
完成后不要忘记dialog.dismiss(
) 它。
您可以AsyncTask.getStatus()
在按下菜单选项时调用,如果它仍在运行,则显示 ProgressDialog。
然后,AsyncTask.onPostExeute()
您可以告诉您的 Activity 数据可用并关闭微调器。
启动下载时运行不可取消的进度对话框,下载完成后关闭。阅读ProgressDialog
课堂。