从另一个 activity 返回后 Bundle 为空
A Bundle is null after returning back from another activity
我的捆绑有问题。我有 2 个活动(带片段),我想将数据存储在片段 FeedListFragment.
当我旋转屏幕时,它工作得很好,但是当我从另一个 activity 返回时,捆绑包为空。
@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
时使用 intent 从第二个 activity 返回到第一个
btn_message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
否则,您必须将数据放入您已经从 activity 发送的意图中 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 上的第三种方法
我的捆绑有问题。我有 2 个活动(带片段),我想将数据存储在片段 FeedListFragment.
当我旋转屏幕时,它工作得很好,但是当我从另一个 activity 返回时,捆绑包为空。
@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
时使用 intent 从第二个 activity 返回到第一个btn_message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
否则,您必须将数据放入您已经从 activity 发送的意图中 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 上的第三种方法