哪個更好地下載當前活動中的數據,然後將數據發送到第二個活動,或發送url到第二個活動,然後下載數據。 謝謝android:這是更好的下載數據並開始活動或
編輯: 我有兩個活動: 第一個活動有一個列表視圖,所以當你點擊一個排它會帶你到第二個活動。 我想在應用程序下載數據時顯示進度對話框,所以我想在第一個活動中顯示對話框,然後在下載完成後我將開始第二個活動。實際上我想在第一個活動中下載數據,因爲我還想在第二個活動開始之前下載廣告以向用戶展示!
哪個更好地下載當前活動中的數據,然後將數據發送到第二個活動,或發送url到第二個活動,然後下載數據。 謝謝android:這是更好的下載數據並開始活動或
編輯: 我有兩個活動: 第一個活動有一個列表視圖,所以當你點擊一個排它會帶你到第二個活動。 我想在應用程序下載數據時顯示進度對話框,所以我想在第一個活動中顯示對話框,然後在下載完成後我將開始第二個活動。實際上我想在第一個活動中下載數據,因爲我還想在第二個活動開始之前下載廣告以向用戶展示!
一般來說選項2更好。但這取決於你的情況。如果您希望第二個活動僅在數據準備就緒時啓動,則最好在活動1中下載它。您可以使用該意向發送數據。數據需要擴展parcelable(意味着它可以寫入磁盤並被解析),因此它可以將它作爲額外的意圖添加。您也可以將數據保存在一個靜態變量中。
編輯:如果你想下載的活動1中的數據,你應該你一個的AsyncTask:http://developer.android.com/reference/android/os/AsyncTask.html
它會下載數據在另一個線程使UI線程不中斷。 AsyncTask提供了一種更新進度的好方法。當用戶按下活動1中的列表項目時,打開一個帶有進度條的對話框並啓動下載數據的異步任務。當異步任務完成和數據已經下載保存在一個靜態變量(這是最簡單的方法),然後使用它在活動2
更多關於異步任務: http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html
EDIT 2 :基本上AsyncTasks有4個主要方法: onPreExecute()它在UI線程上被調用。你可以用它來啓動,將顯示進度對話框:
@Override
protected void onPreExecute() {
super.onPreExecute();
ShowDialog();
}
doInBackground()被稱爲在另一個線程,也就是說可以在其上進行長時間操作。在這裏下載你的數據。使用publishProgress()發佈您的進度。
onProgressUpdate()這就是所謂的UI線程上,這意味着你可以像你的對話框 - 與UI人員溝通所以在這裏你應該更新其進度:
protected void onProgressUpdate(Integer... progress) {
setDialogProgress(progress[0]);
}
onPostExecute()被稱爲上UI線程。數據已被下載。開始活動2.將數據保存在一個靜態變量中或者將其發送給活動目的2.然後獲取活動2中的數據並顯示它。
就是這樣:)
其實我同意你,所以我選擇方法第一,但有一個問題:如果用戶點擊第一個活動中的另一個按鈕,它將下載另一個數據,那麼是否有辦法阻止這種情況。謝謝 – user3376321
所以你有一個有幾個按鈕的活動,每個按鈕應該打開兩個不同的數據的活動性? – user3332028
是的,這是正確的 – user3376321
我喜歡#2 .... – 2014-03-13 22:59:21
第二個選項聽起來更好 – Murad
但爲什麼呢?我認爲在第一次我可以顯示進度下載在同一活動,然後去第二個活動,是有原因,你爲什麼喜歡#2 – user3376321