onSaveInstanceState, всегда null в onCreate (); также onRestore () Никогда не вызывал - PullRequest
0 голосов
/ 07 мая 2020

следующий метод onCreate всегда возвращает null, когда дело доходит до savedInstanceState. несмотря на то, что его убедили, его снова вызвали. Я также пробовал, все параметры режима запуска в файле манифеста.

'' '

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

    textView = findViewById(R.id.hello_text);
    textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(), NewIntent.class);
            startActivity(i);
        }
    });


    if (savedInstanceState != null) {
        textView.setText(savedInstanceState.getString("key"));
        Toast.makeText(this, savedInstanceState.getString("key"), Toast.LENGTH_LONG).show();
    }else
    {
        Toast.makeText(this, "onCreate Called But Nothing saved", Toast.LENGTH_LONG).show();

    }

}

' ''

    @Override
public void onSaveInstanceState(@NonNull Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("key", "VALUE");
    //Toast.makeText(this, outState.getString("key"), Toast.LENGTH_LONG).show();
    //textView.append(outState.get("key")+"\n");
    //Log.d("onSaveInstanceState:" , "onSaveInstanceState()");
}

кроме того, onRestoreInstanceState никогда не вызывался.

    @Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    if(savedInstanceState != null) {
        textView.append(savedInstanceState.getString("key"));
        Toast.makeText(this, "onRestore called", Toast.LENGTH_LONG).show();
    }else {
        Toast.makeText(this, "onRestore NOT Called", Toast.LENGTH_LONG).show();
    }
}
...