在我的應用主要活動中,我下載了一些用戶數據onStart()
。當我打開設置並按下Back
按鈕時,我完成Settings Activity
,然後返回主活動。問題是數據正在被重新下載。在完成活動時避免再次加載數據
那麼,如何避免重新下載數據呢?
我雖然約startActivityForResult
,但我不知道如何使用它,我不明白它是如何工作的。
預先感謝您!
在我的應用主要活動中,我下載了一些用戶數據onStart()
。當我打開設置並按下Back
按鈕時,我完成Settings Activity
,然後返回主活動。問題是數據正在被重新下載。在完成活動時避免再次加載數據
那麼,如何避免重新下載數據呢?
我雖然約startActivityForResult
,但我不知道如何使用它,我不明白它是如何工作的。
預先感謝您!
在主定義一個靜態變量活動類如下:
public static bool download = true;
當您從設置返回時更改其值E要像假:
MainActivity.download = false;
並把您的下載方式中的if語句是這樣的:
if (download) {
yourdownloadcode();
}
我需要'onStart()'中的代碼,所以我會使用你的想法。謝謝! – 2012-08-07 10:00:16
當您在設置活動中按下Back
按鈕後,您的主要活動變爲可見時,將再次調用onStart
方法(請參閱Activity Lifecycle)。這就是您開始重新下載數據的原因。所以,請保留一些標誌,表示您已經開始下載任務。但請記住,您的主要活動可能會在調用方法後的任何時間被殺死。
這是Android的常見行爲。當你啓動你的「設置活動」時,你的「主要活動:調用onStop並且活動已停止,現在當你點擊」設置活動「中的後退按鈕時,」主要活動「進入最前線,onStart方法再次被調用既然你說你正在下載的OnStart方法中的數據,該數據將再次獲得下載。
可避免由onCreate方法下載數據。
謝謝,但我需要在'onStart()'下載。 – 2012-08-07 10:01:28
如果要加載的數據唯一可以使用活動onCreate
。下面是活動lifecicle信息:http://developer.android.com/reference/android/app/Activity.html
startActivityForResult
你可以用這樣的設置屏幕的回調 - 如果你需要你的設置屏幕上更改配置後改變主要活動佈局。你可以在這裏找到一個例子http://saigeethamn.blogspot.com/2009/08/android-developer-tutorial-for_31.html
謝謝,但我需要'onStart()'下載。 – 2012-08-07 10:01:06
後ur代碼的'返回'按鈕 – MAC 2012-08-07 08:36:29