有過Android開發經驗的人相信對EventBus應該都有所瞭解,EventBus是一個開源庫,它使用觀察者模式對模塊間的通信進行解藕。
下面是一個Android中使用EventBus的實例,相信大家都不陌生:
class MainActivity : AppCompatActivity() {
private val TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
EventBus.getDefault().register(this)
event_btn_1.setOnClickListener {
Thread(Runnable { EventBus.getDefault().post(Event(1)) }).start()
}
}
@Subscribe(threadMode = ThreadMode.MAIN_ORDERED)
fun onReceive(event: Event) {
Log.i(TAG, "currentThread: ${Thread.currentThread().name} event = ${event.what}")
}
override fun onDestroy() {
super.onDestroy()
EventBus.getDefault().unregister(this)
}
class Event(var what: Int = 0)
}
可以看到使用在項目中使用EventBus非常簡單,主要