如果app中有定位或传感器数据,你需要获取最新的数据;你可以考虑使用粘性事件而不是自己去获取。EventBus 将最新的粘性事件保存在内存中。粘性事件可以被传递给订阅者或显示查询。因此,你不需要任何特殊逻辑去获取已有的数据。
1.build.gradle
compile ‘org.greenrobot:eventbus:3.0.0’
2.发送事件 postSticky
public class MainActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventBus.getDefault().postSticky(new MessageEvent("发送"));//发送事件
startActivity(new Intent(MainActivity.this,SecActivity.class));
}
});
}
}
3.SecActivity中注册,取消注册,处理事件
public class SecActivity extends Activity {
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(SecActivity.this);//注册
}
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onEvent(MessageEvent event) {//处理
Toast.makeText(SecActivity.this,event.getMessage(),Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().removeAllStickyEvents();
EventBus.getDefault().unregister(this);//取消注册
}
}