2011-11-11 47 views
0

我有問題在下面的方法對兩個不同的捆綁對象:兩個不同的Bundle對象?

onSaveInstanceState(Bundle outState); 
onCreate (Bundle savedInstanceState); 

Android系統怎麼知道的onCreate方法包對象是對象用於保存他/她的活動狀態和onCreate方法使用捆綁對象編程獲取被系統殺死的活動狀態? 是Bundle對象的一個​​Activity類成員和super.saveInstanceState(outState); 將Bundle保存在Activity的Bundle對象中,當一個activity調用onCreate(Bundle)方法時,這個成員發送給onCreate方法?我如何在onCreate()方法中使用Bundle?
請幫我...

回答

0

您保存在onSaveInstanceState方法包中的值將會在onCreate中發回給您。作爲這是如何工作的例子。

  1. 你接到一個電話。
  2. 您的活動已停止並且onSaveInstanceState被調用。你把一個值放入這個包中。
  3. Android完成您的活動並銷燬該實例,因爲操作系統需要內存。
  4. 用戶返回到您的應用程序。
  5. 該捆綁軟件是從Android爲您維護的某種類型的持久性存儲中重新創建的。現在,您的onCreate可以抓住你的onSaveInstanceState

例如在放置在包中的值

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    this.setContentView(R.layout.lldr_activity); 

    mFilterCheckbox = (CheckBox) findViewById(R.id.checkbox_id); 
    if(savedInstanceState != null) { 
     mFilterCheckbox.setChecked(savedInstanceState.getBoolean("FILTER_STATE", false)); 
    } 
} 

@Override 
    protected void onSaveInstanceState(Bundle outState) 
    { 
     super.onSaveInstanceState(outState); 
     outState.putParcelable("FILTER_STATE", mFilterCheckbox.isChecked()); 
    } 
+0

感謝 你能告訴我一個例子,如何使用這個包在onCreate方法? – taher

+0

感謝您的幫助 – taher

相關問題