2013-02-28 146 views
3

如果我每次點擊一個按鈕時都會創建一個新的Intent,那麼創建的活動是否一樣?活動是由同一個班級的同一個活動創建的嗎?

每次我點擊一個按鈕,我想要一個對話框顯示,其中有一個滑塊,在我改變它之後,我想保存狀態,以便下一次打開對話框時滑塊的狀態是一樣的。

我對按鈕的代碼是這樣的:

button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = new Intent(v.getContext(), Slider_Logic.class); 
     v.getContext().startActivity(intent);    
    } 
}); 
+0

您必須傳遞額外的Bundle參數才能保存您的狀態或滑塊的狀態。這意味着你將不得不在某處保存狀態,然後開始意圖,否則它沒有任何意義,它將只有你的這個類的初始參數。 http://stackoverflow.com/questions/768969/passing-a-bundle-on-startactivity – 2013-02-28 18:34:40

回答

2

通過「一樣,」我想你指的是同一個對象實例。答案是不。一般來說,當你開始一個新的活動時,它會創建一個新的活動實例,並將其推送到現有活動前面的堆棧中。

我說「一般」,因爲活動的launch mode可以影響這種行爲。例如,如果您將launchMode設置爲singleTop,則它將創建活動的新實例(如果目標任務中尚不存在)。請參閱文檔以獲取更多信息。