活动之后,从意图额外获取数据



我有3个活动。他们正在互相推出。

活动A> B>C。

每个人都使用意图传递数据。

问题是 - 当我从活动B到活动C并单击返回时 - 我转到活动B,但无法恢复最初来自Activity A的目的。

// activity A starting activity B
Intent intent = new Intent(MainActivity.this, ChaptersActivity.class);
intent.putExtra(CHAPTER_NAME, R.string.chapter_1_title);
startActivity(intent);
// Activity B saving data from intent extra in bundle and starting activity 
 public void onSaveInstanceState(Bundle outState) {
      super.onSaveInstanceState(outState);
      outState.putInt(MainActivity.CHAPTER_NAME, getIntent().getExtras().getInt(MainActivity.CHAPTER_NAME));       
    }
Intent intent = new Intent(this, ChapterDetails.class);
startActivity(intent);
// after going back from activity C to activity B by pressing back button - method onCreate is called, but Bundle onSaveInstanceState is null. As well as getIntent() is null. 

作为一种解决方法,我正在考虑从活动B到C或使用持久存储时的StartActivityForresult。但不确定这是做事的正确方法。有任何提示?

在寻找解决方案一段时间后,我提出了这一点:

首先,有"背面"one_answers"向上"。我的意思是在我的问题上"提升"。向上导航与左下角或物理背部按钮不同。默认情况下,它将重新创建UP活动,除非我将启动模式设置为" Singletop"以作为清单中的UP活动。

或我需要在活动C中编写代码以组成" UP"按钮的作用,例如" Back"

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

最新更新