EventBus源碼追蹤

有過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非常簡單,主要

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章