Java 为什么onCreate(Bundle savedInstanceState)不访问onSaveInstanceState()捆绑包?
我在保存捆绑包时记录了它,因此信息正在保存,但是onCreate似乎没有访问捆绑包 国家: “保存的实例状态捆绑包在配置更改和进程死亡期间都会保持,但受存储和速度的限制…” 如果我错了,请纠正我,但这听起来好像不仅仅是为了配置更改 我只想用onSaveInstanceState()包保存UI状态,以传递到onCreate()方法中。据我理解,它应该自动这样做 MainActivity的代码:Java 为什么onCreate(Bundle savedInstanceState)不访问onSaveInstanceState()捆绑包?,java,android-studio,onsaveinstancestate,Java,Android Studio,Onsaveinstancestate,我在保存捆绑包时记录了它,因此信息正在保存,但是onCreate似乎没有访问捆绑包 国家: “保存的实例状态捆绑包在配置更改和进程死亡期间都会保持,但受存储和速度的限制…” 如果我错了,请纠正我,但这听起来好像不仅仅是为了配置更改 我只想用onSaveInstanceState()包保存UI状态,以传递到onCreate()方法中。据我理解,它应该自动这样做 MainActivity的代码: public class MainActivity extends AppCompatActivity
public class MainActivity extends AppCompatActivity {
Intent secondActivity;
TextView textView;
String greeting = "Welcome Back World!";
private static final String GREETING_KEY = "Modified Greeting";
public void clickMe(View view) { startActivity(secondActivity); }
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
outState.putString(GREETING_KEY, greeting);
super.onSaveInstanceState(outState);
Log.i("Current Save Instance is", String.valueOf(outState));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.hello_world);
if(savedInstanceState != null) { textView.setText(savedInstanceState.getString(GREETING_KEY)); }
else { textView.setText("Hello!!"); }
secondActivity = new Intent(getApplicationContext(), SecondActivity.class);
}
这似乎很好(但显然不是),我不明白为什么。任何帮助都将不胜感激
我尝试过使用onRestoreInstanceState(),但效果相同,因为两种方法使用相同的捆绑包(根据Android开发者保存UI状态的页面)
是因为我在SecondActivity中使用startActivity()返回MainActivity吗
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(firstActivity);
}
});
我也在使用API 24(牛轧糖)来完成这个特殊的项目;如果这是有用的信息