我的应用中有一个ViewPager
包含6个Fragments
。每个片段仅向用户显示文本信息。我已经为用户提供了保存/共享此信息的选项,但希望确保在共享信息之前加载所有片段。
问题是当信息尚未加载时,显然是NullPointerException
,仅仅是因为尚未定义。所以我希望弹出ProgressDialog
直到加载片段。
我已设置mViewPager.setOffScreenLimit()
,对话框没问题,但如何知道加载所有数据的时间。
这是我正在处理的方法,但它导致ANR,应用程序无响应。感谢您的所有帮助,感谢您的阅读!
private void checkIfAllLoaded() {
ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("Please wait");
dialog.setMessage("Please wait while the information is prepared...");
dialog.setCancelable(false);
dialog.setIndeterminate(true);
dialog.show();
for (int i = 0; i < mAdapter.getCount(); i++) {
if (!mAdapter.getItem(i).isAdded()) {
while (!mAdapter.getItem(i).isAdded()) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
dialog.dismiss();
}