gpt4 book ai didi

android - onRestoreInstanceState 没有被调用

转载 作者:太空狗 更新时间:2023-10-29 14:06:20 28 4
gpt4 key购买 nike

我想在 App 进入 onPause 时保存 textView 的值。所以我实现了 onSaveInstanceState 和 onRestoreInstanceState。但如下面的 logcat 输出所示,onRestoreInstanceState永远不会被调用。

我知道 onRestoreInstanceState 和 onSaveInstanceState 都不是 App 生命周期的一部分,那么为什么 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);
}

日志:

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:

最佳答案

onRestoreInstanceState() 仅在 onStart() 之后调用,因此不会在 onResume() 之后调用。检查这个完整的 Activity 生命周期。

enter image description here

希望对您有所帮助!

关于android - onRestoreInstanceState 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32169035/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com