У меня проблема с пакетом. У меня есть 2 действия (с фрагментами), и я хочу хранить данные во фрагменте FeedListFragment.
Когда я поворачиваю экран, он работает нормально, но когда я возвращаюсь из другого действия, пакет недействителен.
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
progressBar = view.findViewById(R.id.progressBar);
if ( savedInstanceState == null ) {
feedProviderViewModel.getAll().observe(this, feedProviders -> {
feedEntryViewModel.deleteAll();
RssDownloader rssDownloader = new RssDownloader(feedProviders, this, progressBar);
});
}
...
}
А еще у меня есть onSaveInstanceState
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
Log.d("tag","Save instance state called");
outState.putString(FIRST_RUN,"Downloaded");
}
не используйте намерение вернуться от второго действия к первому при использовании onBackPress
btn_message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
в противном случае вы должны поместить свои данные в намерение, которое вы уже отправили из действия 1
btn_message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(this, YOUR ACTIVITY);
intent.putExtra("bundle",bundle);
startActivity(intent);
}
});
третий способ сохранить его на SharedPreference
OnSaveinstance в соответствии с документом, используемым для сохранения состояний пользовательского интерфейса при повороте устройства без сохранения объектов.
Итак, onSaveInstanceState работает только при повороте экрана?