2013-07-23 143 views
1

我有一個活動是發送一些數據到服務器onCreate.My的問題是,如果我按手機上的鎖定按鈕屏幕關閉,因爲我們都知道,但當我按下鎖定按鈕要打開按鈕,屏幕將打開並再次發送數據,以便複製數據。我只需要一次發送數據,該怎麼做。?Android的保存活動狀態

回答

1

送在onCreate的數據,但只有當savedInstanceState爲null:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_layout); 
    if(savedInstanceState == null) { 
     // send data in a background thread 
    } 
} 

如果活動是重新創建(你的情況),savedInstanceState不爲空,它將包含任何有狀態的信息,你需要設置。

+0

謝謝gunar。:) lemme測試。 – devian

+0

非常感謝你。:)我更懷疑我有。我正在開發一個試用版,所以我正在檢查服務器的日期。檢查是在第一個活動oncreate。但問題是當我去第二個活動有一個後退按鈕。當我按下該按鈕時,顯然它會去第一次然後它會檢查日期。我不想檢查日期,每次我只需要檢查應用程序啓動時的日期就是這樣。希望你能幫我。! – devian

+0

那麼,你可以有一個自定義對象(你可以從任何地方引用爲單例)。該對象可以保留你需要的信息(日期)。所以你從服務器獲取日期並將其設置在該對象中:DateKeeper.getInstance()。setDate(serverDate);'。下一次你想得到這個日期,你會檢查存儲的日期是否爲空。如果爲空,則下載它(這將是下載的第一個日期);否則,請勿下載。希望它有道理...... – gunar