導航:首頁 > 源碼編譯 > eventbus反編譯報錯

eventbus反編譯報錯

發布時間:2022-04-16 12:43:07

Ⅰ eventbus中registerSticky怎麼報錯說沒有定義是不是eventbus3.0版本太低最好有大神提供可用鏈接。

http://blog.sina.com.cn/s/blog_1595b076b0102wf2e.html
好久以前寫的,寫的不太好,湊合著看吧,打算換另一個博客了
我寫的功能是:
在MainActivity裡面注冊事件
點擊MainActivity的Button,進入Second
Second裡面還有一個Button,點擊後,發布事件
最後調用Toast

Ⅱ eventbusexception是什麼錯

你看EventBus注冊的時候是不是在主進程裡面,EventBus底層是handler,只能在主進程工作,否則就會報錯,注意是進程,不是線程,線程可以正常工作,看看有沒有用到aidl之類的..

Ⅲ eventbus為什麼我只post一次卻接受到很多次

方法/步驟 1,點擊啟動AndroidStudio,啟動後的界面如圖所示。 2,復制你需要添加的jar,並將其黏貼到app— —src— —main— —libs文件夾下,可運行的AndroidStudio項目都有像這樣的目錄結構。可以看到雖然jar已經復制黏貼過來了,但是還未導入,所。

Ⅳ Android中使用事件匯流排的優缺點分別是什麼

Android中使用事件匯流排Eventbus的優缺點如下:
1.Android EventBus事件匯流排是一個Android平台輕量級的事件匯流排框架, 它簡化了Activity、Fragment、Service等組件之間的交互,很大程度上降低了它們之間的耦合,使得代碼更加簡潔,耦合性更低,提升代碼質量。
2.AndroidEventBus使用註解來標識接收函數,這樣函數名不受限制。
3.缺點是要實現上述訂閱/發布模型的功能,付出的代價就是對各個注冊Bus的類進行反射。如果大量的使用的情況下,對應用的性能多少有點副影響。
AndroidEventBus類似於觀察者模式,通過register函數將需要訂閱事件的對象注冊到事件匯流排中,然後根據@Subcriber註解來查找對象中的訂閱方法,並且將這些訂閱方法和訂閱對象存儲在map中。當用戶在某個地方發布一個事件時,事件匯流排根據事件的參數類型和tag找到對應的訂閱者對象,最後執行訂閱者對象中的方法。這些訂閱方法會執行在用戶指定的線程模型中,比如mode=ThreadMode.ASYNC則表示該訂閱方法執行在子線程中

Ⅳ eventbus粘性時間和普通事件的區別

3與2主要區別在代碼使用簡化和性能更快上。詳細如下:EventBus 2.x 必須定義以onEvent開頭的幾個方法,代碼中語境比較突兀,且有可能會導致拼寫錯誤,例如數據同步事件
EventBus 3.0 函數名字不再受到許可權,而且可以在一個函數中體現出在哪個線程執行,並且可指定接收事件的優先順序
EventBus 2.x 注冊方式也比較繁瑣。EventBus 3.0 注冊方式只有一個
EventBus 2.x 是採用反射的方式對整個注冊的類的所有方法進行掃描來完成注冊,當然會有性能上的影響。EventBus 3.0中EventBus提供了EventBusAnnotationProcessor註解處理器來在編譯期通過讀取@Subscribe()註解並解析、處理其中所包含的信息,然後生成java類來保存所有訂閱者關於訂閱的信息,這樣就比在運行時使用反射來獲得這些訂閱者的信息速度要快

Ⅵ 如何消除間接呼叫 Method 在 Android Studio 中的編譯警告

如果有使用過 DI (Dependency Injection) Framework 像是 butterknife,或是 Bus 一類的 Framework 像是 Otto 或 EventBus,一定會撰寫出 Method 是沒有被自己開發的源代碼直接呼叫的。這時在 Android Studio 的即時編譯檢查就會出現警告:

Method 『...』 is never used

就像這篇文章里提到,警告的出現會形成一定程度上的困擾,最好是能夠消除掉,畢竟這是一個無法避免的寫法,但又不應該被看成是個問題。

照「調整 Android Studio 編譯檢查規則」中的方法把檢查規則整個取消掉,是個一勞永逸的方法。但是也把其可能的錯誤也抑制掉了,徒增程序質量上的風險,並非上策。

另外一個可行的選項是在方法上宣告 SuppressWarnings 的 Annotation,像是 @SuppressWarnings("unused")、@SuppressWarnings({"UnusedDeclaration"})、@SuppressWarnings({"UnusedParameters」})。跟前一個方案一樣,應該顯示的警告也同時被遮蔽掉了,不是最佳的方式。

所幸 Android Studio 也不是沒有提供對策,在有問題的源代碼上按下「alt+enter」,會跳出 Menu 並可以選擇 Suppress for methods annotated by 『...』 項目。以 greenrobot 的 EventBus 為例,所有以 org.greenrobot.eventbus.Subscribe 為 Annotation 的 Method 都不會再顯示警告,所以問題順利地解決了。

以上的解決方法應該已經很多人都知道了,只是還有一個衍生的問題。如果使用的 Framework 提供的 Annotation 不只一個,還是得要一個一個地重覆相同的動作,不能一次搞定嗎?

這時可以開啟「調整 Android Studio 編譯檢查規則」中提到的 Inspections 選項畫面,切換到「Java->Declaration rendancy->Unused declaration」項目。畫面右方的 Options Frame 最下方有一個【Configure annotations...】的按鈕,點下去之後會再跳出另一個小視窗。接著就可以在視窗的最下方新增【Add Annotation Class】或【Add Annotations Pattern】,前一個是新增單一個 Class,另一個則是使用萬用字元來增加一整組的 Class。

以上說明的這些資訊都被存在 .idea/misc.xml 的文件中,打開後會看到類似以下的內容:

<component name="EntryPointsManager">
<entry_points version="2.0" />
<list size="1">
<item index="0" class="java.lang.String" itemvalue="org.greenrobot.eventbus.Subscribe" />
</list>
</component>
如果你有莫名的控制欲,想要凡事都掌握在手中,可以直接修改文件的內容,也會達到一樣的效果。

閱讀全文

與eventbus反編譯報錯相關的資料

熱點內容
cs社區伺服器怎麼改中文 瀏覽:21
360手機取消加密 瀏覽:962
python矩陣橫向求和 瀏覽:635
台灣伺服器主板廠商有哪些雲主機 瀏覽:81
php代碼部署到雲伺服器 瀏覽:724
本地伺服器怎麼打個人網站 瀏覽:131
用姓做個特效用哪個app 瀏覽:782
安卓faceme酷臉怎麼打開 瀏覽:290
python矩陣的運算符 瀏覽:800
程序員進公司干什麼 瀏覽:973
socket發數據java 瀏覽:566
上傳圖片伺服器開小差是什麼意思 瀏覽:785
pdf文件怎麼轉換為ppt文件 瀏覽:858
web前端開發與java 瀏覽:737
安卓如何卸載軟體 瀏覽:500
linux如何查看伺服器型號 瀏覽:282
php新建一個對象 瀏覽:682
滴滴加密錄像投訴 瀏覽:979
word兼容pdf 瀏覽:642
阿里雲輕量應用伺服器怎麼買 瀏覽:569