从另一个活动返回后,Bundle为空

时间:2019-04-08 09:35:10

标签: android android-intent bundle

我的捆绑包有问题。我有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");
}

1 个答案:

答案 0 :(得分:0)

请勿在InBackPress上使用意图将您的第二个活动切换回第一个活动

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上的第三种方法