我想退出這是我的Android活動的生命週期內設置活動後,一些變量保存,並告訴他們,當我再次啓動活動,但我似乎並沒有設法得到的東西加工。下面是我如何做到這一點:保存變量銷燬不起作用
我創建了一個整型變量「測試」:
public class MainActivity extends Activity {
int test = 1;
然後我寫了一個方法,通過按下一個按鈕來改變這個varibale值:
public void changeValueTest(View view) {
this.test = 2;
}
然後我使用的onSaveInstanceState()方法來保存當前值:
static final String TEST = "test variable";
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putInt(TEST, this.test);
super.onSaveInstanceState(savedInstanceState);
}
然後在onCreate()方法,我把THI S碼來獲取和顯示改爲「測試」值:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
this.test = savedInstanceState.getInt(TEST);
TextView textView1 = (TextView)findViewById(R.id.textView1);
textView1.setText("Current test value is: " + test);
}
}
於是我打開應用程序,按下按鈕,以「測試」值從1更改爲2,然後退出應用程序,等到它是正確的(當應用程序管理器沒有在「緩存進程」窗口中顯示它時),再次啓動應用程序,textView1視圖顯示1而不是2.我做錯了什麼?請幫忙!謝謝!
嘗試存儲在SharedPreferences代替InstanceState值。 InstanceState在應用程序被破壞時並不真正保存,但SharedPrefernces可以! –
謝謝!我會盡力。 – Salivan
如果你使用'onDestroy()',如果可能不會做你認爲它做的事。檢查文檔。 – Simon