Я хочу сохранить значение textView, когда приложение переходит в onPause. поэтому я реализовал onSaveInstanceState и onRestoreInstanceState. но как показано ниже в выводе logcat, onRestoreInstanceState никогда не вызывается.onRestoreInstanceState не получает вызов
Я знаю, что как onRestoreInstanceState, так и onSaveInstanceState не являются частью жизненного цикла приложения, поэтому почему onSaveInstanceState получает вызов, а onRestoreInstanceState - нет? и как вызвать onRestoreInstanceState?
код:
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.w(TAG, LogAnd.i("onResume", ""));
btAdapter = BluetoothAdapter.getDefaultAdapter();
if (btAdapter == null) {
tvStatus.setText("[" + SysUtils.getDeviceName() + "] no Bluetooth installed.");
} else {
tvStatus.setText("[" + SysUtils.getDeviceName() + "] Bluetooth installed.");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
Log.w(TAG, LogAnd.i("onSaveInstanceState", ""));
outState.putString("statusText", tvStatus.getText().toString());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
Log.w(TAG, LogAnd.i("onRestoreInstanceState", ""));
String status = savedInstanceState.getString("statusText");
tvStatus.setText(status);
}
LogCat:
08-23 18:36:31.544: W/MainActivity(32195): -> onResume:
08-23 18:36:31.904: W/MainActivity(32195): -> onPause:
08-23 18:36:32.694: W/MainActivity(32195): -> onSaveInstanceState:
08-23 18:36:34.014: W/MainActivity(32195): -> onResume:
08-23 18:36:42.904: W/MainActivity(32195): -> onPause:
08-23 18:36:43.784: W/MainActivity(32195): -> onSaveInstanceState:
08-23 18:36:43.784: W/MainActivity(32195): -> onStop:
08-23 18:36:50.084: W/MainActivity(32195): -> onStart:BT-Receiver Registered
08-23 18:36:50.084: W/MainActivity(32195): -> onResume:
, пожалуйста, проверьте мой ответ. –