我有一個加載xml文件的活動,但是當應用程序在1秒或2秒內沒有回覆的情況下被調用時,我不知道是否可以進行某種加載而不會出現應用程序崩潰,謝謝。加載狀態或異步任務
0
A
回答
1
經驗法則是,如果你做什麼,請使用AsyncTask
,否則你的應用程序將最終崩潰在長網絡延遲或大文件。
private class doSomethingTask extends AsyncTask<SomeData,Integer,SomeData[]> {
private ProgressDialog dialog;
protected SomeData[] doInBackground(SomeData... values) {
int count = values.length;
for(int i=0; i<count; i++) {
publishProgress(count,i+1);
// do something here
....
//
if(isCancelled()) return null;
}
return values;
}
protected void onPreExecute()
{
// show progress bar or something
dialog = new ProgressDialog(context);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMessage(context.getString(R.string.downloading));
dialog.show();
}
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
dialog.setMax(values[0]);
dialog.setProgress(values[1]);
}
protected void onPostExecute(SomeData[] result) {
// kill progress bar here
if(this.dialog.isShowing()) {
this.dialog.dismiss();
}
}
}
+0
好的,但我想調用活動,它是開放的,並保持listview組件加載,直到數據加載,以及Facebook應用程序,例如。 – user1265628 2012-04-24 01:54:46
+0
這沒問題,'class doSomethingTask'放在你的'Activity'裏面,所以你可以顯示列表,並且列表上會出現一個'ProgressBar',告訴你的用戶正在發生什麼。 – lenik 2012-04-24 02:03:02
相關問題
- 1. Android:異步任務加載器
- 2. dispatch_sync(dispatch_get_global_queue(xxx),任務)同步或異步
- 3. 異步任務從api的異步任務不運行異步
- 4. 異步任務
- 5. 異步任務
- 6. 異步任務vs任務
- 7. 無法從異步任務更改開關狀態
- 8. 異步或同步加載更好?
- 9. Android異步任務下載失敗err
- 10. android異步任務
- 11. 塊異步任務
- 12. 異步任務,BufferedReader
- 13. SignalR異步任務
- 14. 如何基於不同的服務器端狀態異步加載React組件?
- 15. 異步任務VS異步無效
- 16. 異步無狀態API
- 17. 應該返回任務結束與任務或異步
- 18. 設置異步任務加載JSON轉換成一個ListView
- 19. 爲什麼加載頁面時不是芹菜任務異步?
- 20. 按鈕需要點擊兩次異步任務完成加載
- 21. 通知異步任務加載器的數據變化
- 22. 使用異步任務取消任務
- 23. 異步任務中的getInputStream任務
- 24. 異步加載TabItem
- 25. javascript異步加載
- 26. 異步加載XDocument
- 27. UITableViewDataSource異步加載
- 28. nhibernate,異步加載
- 29. 異步傳播異步運行異步任務
- 30. 添加狀態到任務的問題
如果你有事情,用戶可以在屏幕上,然後做一個異步任務會更有意義(與屏幕例如右上方一個進度條控件)進行交互,但如果沒有什麼用戶可以互動,然後有一個負載屏幕更有意義。 – Raunak 2012-04-23 21:34:33
好的,我怎麼做這個加載屏幕? – user1265628 2012-04-24 00:21:53