使用EventBus进行进程间通信。
源码:
MainActivity.java
public class MainActivity extends AppCompatActivity {
private static MediaInfoEvent meidaInfoEvent = new MediaInfoEvent();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EventBus.getDefault().register(this);
findViewById(R.id.update_media).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
meidaInfoEvent.title = "Going Home";
meidaInfoEvent.author = "Sophie Zelmani";
meidaInfoEvent.ablum = "Going Home";
EventBus.getDefault().post(meidaInfoEvent);
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUpdateMeidaInfo(MediaInfoEvent mediaEvent) {
TextView tvMediaInfo = findViewById(R.id.media_info);
tvMediaInfo.setText( "title:" + mediaEvent.title + ",artist:" + mediaEvent.author + ",ablum:" + mediaEvent.ablum);
}
}
MediaInfoEvent.java
public class MediaInfoEvent{
public String title;
public String author;
public String ablum;
}
重点:
在onCreate()中注册:
EventBus.getDefault().register(this);
在onDestroy()中销毁:
EventBus.getDefault().unregister(this);
发布事件:
EventBus.getDefault().post(meidaInfoEvent);
订阅事件:
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUpdateMeidaInfo(MediaInfoEvent mediaEvent) {
}