onSaveInstanceState () не работает при повороте экрана - PullRequest
0 голосов
/ 24 апреля 2020

Возможно, мой код правильный, но метод onSaveInstanceState () не работает при повороте экрана. Данные не сохраняются после уничтожения активности (onDestroy () сработало). Однако метод работает после методов onPause () и onStop (). Есть один элемент в деятельности - textView, и я пишу текст, когда методы работают. Есть ошибка? Заранее спасибо.

    public class MainActivity extends AppCompatActivity {

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().hide();
        textView = findViewById(R.id.textView);

        if (savedInstanceState != null)
        {
           textView.setText(savedInstanceState.getString("saveInstance"));
        }

        Log.i("lifecycle show", "onCreate() worked");
        textView.append("onCreate() worked\n");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("lifecycle show", "onStart() worked");
        textView.append("onStart() worked\n");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("lifecycle show", "onResume() worked");
        textView.append("onResume() worked\n");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("lifecycle show", "onRestart() worked");
        textView.append("onRestart() worked\n");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("lifecycle show", "onPause() worked");
        textView.append("onPause() worked\n");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("lifecycle show", "onStop() worked");
        textView.append("onStop() worked\n");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("lifecycle show", "onDestroy() worked");
        textView.append("onDestroy() worked\n");
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.i("lifecycle show", "onSaveInstanceState() worked");
        textView.append("onSaveInstanceState() worked\n");
        outState.putString("savedInstance", textView.getText().toString());
    }
}

1 Ответ

1 голос
/ 24 апреля 2020

Неправильный тег. Вы помещаете строку, используя «saveInstance» в качестве тега, затем получаете строку по тегу «saveInstance».

...