如果所要完成的需求是要获取最新的数据并进行传递,我们可以考虑使用EventBus粘性事件
效果:在子页面的事件被触发时,接收消息 主页面只管跳转和发送消息
---------------------代码-----------------------------------
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); } private void initView() { btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn: //发送消息 EventBus.getDefault().postSticky(new EventBusMessage("主页面发送的黏性事件")); Intent intent=new Intent(this,Main2Activity.class); startActivity(intent); break; } } } ---------------------------main2--------------------------------------public class Main2Activity extends AppCompatActivity implements View.OnClickListener { private Button receive; private TextView tv_text; public boolean flag=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //初始化控件 initView(); } private void initView() { receive = (Button) findViewById(R.id.receive); tv_text = (TextView) findViewById(R.id.tv_text); receive.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.receive: if(flag){ //注册 EventBus.getDefault().register(this); flag=false; } break; } } //接收黏性事件,多了一个属性Sticky,改为true方是启动黏性事件 @Subscribe(threadMode = ThreadMode.MAIN,sticky = true) public void getMessage(EventBusMessage eventBusMessage){ tv_text.setText(eventBusMessage.message); } //解除注册 @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); //移除所有的黏性事件 EventBus.getDefault().removeAllStickyEvents(); } }------------------------------------------------------------public class EventBusMessage { public String message; public EventBusMessage(String message) { this.message = message; } }