2012-08-07 57 views
0

在我的應用主要活動中,我下載了一些用戶數據onStart()。當我打開設置並按下Back按鈕時,我完成Settings Activity,然後返回主活動。問題是數據正在被重新下載。在完成活動時避免再次加載數據

那麼,如何避免重新下載數據呢?

我雖然約startActivityForResult,但我不知道如何使用它,我不明白它是如何工作的。

預先感謝您!

+0

後ur代碼的'返回'按鈕 – MAC 2012-08-07 08:36:29

回答

2

在主定義一個靜態變量活動類如下:

public static bool download = true; 

當您從設置返回時更改其值E要像假:

MainActivity.download = false; 

並把您的下載方式中的if語句是這樣的:

if (download) { 
yourdownloadcode(); 
} 
+0

我需要'onStart()'中的代碼,所以我會使用你的想法。謝謝! – 2012-08-07 10:00:16

1

當您在設置活動中按下Back按鈕後,您的主要活動變爲可見時,將再次調用onStart方法(請參閱Activity Lifecycle)。這就是您開始重新下載數據的原因。所以,請保留一些標誌,表示您已經開始下載任務。但請記住,您的主要活動可能會在調用方法後的任何時間被殺死。

2

這是Android的常見行爲。當你啓動你的「設置活動」時,你的「主要活動:調用onStop並且活動已停止,現在當你點擊」設置活動「中的後退按鈕時,」主要活動「進入最前線,onStart方法再次被調用既然你說你正在下載的OnStart方法中的數據,該數據將再次獲得下載。

可避免由onCreate方法下載數據。

+0

謝謝,但我需要在'onStart()'下載。 – 2012-08-07 10:01:28

1

如果要加載的數據唯一可以使用活動onCreate。下面是活動lifecicle信息:http://developer.android.com/reference/android/app/Activity.html

startActivityForResult 

你可以用這樣的設置屏幕的回調 - 如果你需要你的設置屏幕上更改配置後改變主要活動佈局。你可以在這裏找到一個例子http://saigeethamn.blogspot.com/2009/08/android-developer-tutorial-for_31.html

+0

謝謝,但我需要'onStart()'下載。 – 2012-08-07 10:01:06