本文共 1615 字,大约阅读时间需要 5 分钟。
使用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) {
}
转载地址:http://icre.baihongyu.com/