編輯:關於android開發
程序運行輸出日志如下
EventBus.getDefault().register(this); 意思是注冊當前界面所有方法
EventBus.getDefault().post("Hello EventBus"); 意思是尋找當前界面參數為一個的方法並且是被@Subscribe注解,並執行此方法。當執行發送事件post在線程1裡執行,那麼事件方法也在線程1裡執行.
聲明:定義事件方法必須是public,不能有使用修飾符否則會報錯。
2.線程模型模式
在EventBus的事件處理函數中需要指定線程模型,即指定事件處理函數運行所在的線程。EventBus中通常有四種線程模型,分別是PostThread(默認)、MainThread、BackgroundThread與Async。
PostThread:如果使用事件處理函數指定了線程模型為PostThread,那麼該事件在哪個線程發布出來的,事件處理函數就會在這個線程中運行,也就是說發布事件和接收事件在同一個線程。
MainThread:如果使用事件處理函數指定了線程模型為MainThread,那麼不論事件是在哪個線程中發布出來的,該事件處理函數都會在UI線程中執行。該方法可以用來更新UI,但是不能處理耗時操作。
BackgroundThread:如果使用事件處理函數指定了線程模型為BackgroundThread,那麼如果事件是在UI線程中發布出來的,那麼該事件處理函數就會在新的線程中運行,如果事件本來就是子線程中發布出來的,那麼該事件處理函數直接在發布事件的線程中執行。在此事件處理函數中禁止進行UI更新操作。
Async:如果使用事件處理函數指定了線程模型為Async,那麼無論事件在哪個線程發布,該事件處理函數都會在新建的子線程中執行。同樣,此事件處理函數中禁止進行UI更新操作。
接下來請看示例
輸出日志如下:
發送事件在新的一個線程中執行
輸出日志如下:
3.事件優先接收proiority使用
Android 不一樣的原生分享,android分享
Android 不一樣的原生分享,android分享Android做分享功能百度一下就兩種方案,其一是用系統原生的Activity,最終彈出一個對話框,下面這種的還好,像
仿煎蛋jiandan應用客戶端源碼,煎蛋jiandan
仿煎蛋jiandan應用客戶端源碼,煎蛋jiandan項目源碼下載: http://code.662p.com/view/10654.html 效果圖 &
Android之ListView&ViewPager模擬新聞界面,androidlistview
Android之ListView&ViewPager模擬新聞界面,androidlistview模擬新聞 APP 的界面 1)寫 ListView
HTML5矢量實現文件上傳進度條
HTML5矢量實現文件上傳進度條在HTML中,在文件上傳的過程中,很多情況都是沒有任何的提示,這在體驗上很不好,用戶都不知道到時有沒有在上傳、上傳成功了沒有,所以今天給大