這是我的用例:
該應用程序從登錄屏幕開始。您輸入您的憑據並點擊「登錄」按鈕。然後出現一個進度對話框,你等待一些東西下載。一旦這些東西下載完畢,你就會被帶到一個新的活動中。具體到哪個活動取決於服務器響應。我可以在沒有任務進入前臺的情況下爲特定任務創建活動嗎?
這裏是我的問題:
如果在此登錄/下載過程回家,在不久的將來,您的下載將完成一些點,並且將調用startActivity()
。 那麼新的活動將被推到前臺,粗暴地中斷用戶。在我開始下載之前,我無法啓動活動,因爲正如我前面提到的那樣,我開始的活動取決於下載的結果。
我顯然不喜歡像這樣打斷用戶。解決這個問題的一個方法是避免調用startActivity()
,直到用戶返回到應用程序。我可以通過跟蹤LoginActivity的onStop()
和onRestart()
來做到這一點。 但我想知道,有沒有什麼辦法可以在後臺創建活動?這樣用戶返回到應用程序,他準備去...否則他將不得不等待新的活動創建(這可能需要一些時間,因爲新的活動也必須下載和顯示一些數據)。
更新: 猜猜是什麼?我撒了謊!我可以發誓說,開始這項活動正在使它前來,但我又回過頭來再次測試,問題已經神奇地消失了。我在1.6和2.0.1都測試過,兩個操作系統都足夠聰明,不會把後臺任務帶到前臺。
我不使用服務,它只是一個簡單的'AsyncTask'。讓用戶從通知開始活動與開始活動後返回到應用程序的活動相同。所以它不能很好地解決我的問題,但通知可能是一個很好的獎勵,所以感謝這個想法。 – 2010-03-17 19:07:57
那麼,如果你希望用戶能夠關閉該活動,同時仍然在下載,我想你應該使用一個'服務'的下載! – MrSnowflake 2010-03-19 10:24:42