Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么onCreate(Bundle savedInstanceState)不访问onSaveInstanceState()捆绑包?_Java_Android Studio_Onsaveinstancestate - Fatal编程技术网

Java 为什么onCreate(Bundle savedInstanceState)不访问onSaveInstanceState()捆绑包?

Java 为什么onCreate(Bundle savedInstanceState)不访问onSaveInstanceState()捆绑包?,java,android-studio,onsaveinstancestate,Java,Android Studio,Onsaveinstancestate,我在保存捆绑包时记录了它,因此信息正在保存,但是onCreate似乎没有访问捆绑包 国家: “保存的实例状态捆绑包在配置更改和进程死亡期间都会保持,但受存储和速度的限制…” 如果我错了,请纠正我,但这听起来好像不仅仅是为了配置更改 我只想用onSaveInstanceState()包保存UI状态,以传递到onCreate()方法中。据我理解,它应该自动这样做 MainActivity的代码: public class MainActivity extends AppCompatActivity

我在保存捆绑包时记录了它,因此信息正在保存,但是onCreate似乎没有访问捆绑包

国家:

“保存的实例状态捆绑包在配置更改和进程死亡期间都会保持,但受存储和速度的限制…”

如果我错了,请纠正我,但这听起来好像不仅仅是为了配置更改

我只想用onSaveInstanceState()包保存UI状态,以传递到onCreate()方法中。据我理解,它应该自动这样做

MainActivity的代码:

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(牛轧糖)来完成这个特殊的项目;如果这是有用的信息