有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么保存在onSaveInstanceState()中的数据都返回null

我在onSaveInstanceState()方法上保存一个带有“message”键的字符串,以便在onCreate()方法中简单地显示一个toast,但它不起作用。我做错了什么

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initComponents();
        onClickLogin();

        if(savedInstanceState!=null){
            String message = savedInstanceState.getString("message");
            Toast.makeText(this, message, Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
        super.onSaveInstanceState(outState, outPersistentState);
        outState.putString("message", "This is my message to be reloaded");
    }

我已经尝试过在onSaveInstanceState()中切换两条语句,如下所示,但得到了相同的结果

@Override
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
        outState.putString("message", "This is my message to be reloaded");
        super.onSaveInstanceState(outState, outPersistentState);
    }

共 (1) 个答案

  1. # 1 楼答案

    您必须重写另一个没有PersistableBundle outPersistentState的方法

       @Override
       public void onSaveInstanceState(Bundle outState) {
          super.onSaveInstanceState(outState);
          outState.putString("message", "This is my message to be reloaded");
       }