这可能是由于在Android OS 11上,在onRestart()方法中甚至在应用程序进入后台时,应用程序的进程可能被终止而导致的。为了避免这个问题,应该保存和恢复Activity的状态。
例如,可以在onSaveInstanceState()方法中保存Activity的状态,并在onCreate()或onRestoreInstanceState()方法中恢复状态:
public class MainActivity extends AppCompatActivity {
private String mName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
mName = savedInstanceState.getString("name");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("name", mName);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mName = savedInstanceState.getString("name");
}
}
这里我们保存和恢复了一个字符串变量,但同样的原则也可以应用于其他声明的变量和视图。