我正在學習Android,而AFAIK是在活動之間傳遞數據的標準Android機制,它使用Intents,而後者在較低級別上實現爲IPC(也許我錯了)。事件總線庫機制與使用靜態變量在活動之間傳遞數據一樣糟嗎?
似乎最近出現了一堆庫,讓Android開發人員的生活更輕鬆。在他們之間,着名的Event Bus(Greenrobot的一個,Square的Otto)。我一直在嘗試這兩種(幾乎精確的接口語義),並且已經看到了一些關於如何使用Greenrobot事件總線將事件發佈到使用.postSticky的事件的文章,它允許消費或拉動新活動上的事件,當這是準備好獲取這些數據。但是從我現在的理解來看,使用Intents(以及因此在處理複雜對象時使用可序列化/可parcelable對象的繁瑣工作)的主要目的是允許Android在系統殺死應用程序後重新創建這些數據由於資源限制,通常當你切換到另一個應用程序,並開始玩耍。所以在這種情況下,當你切換回你的應用程序時,你會得到NULL指針對使用事件總線傳遞的數據。
我錯過了什麼嗎?或者乾脆採用這種方法(事件總線將數據傳遞給活動),即使代碼非常乾淨,是完全錯誤的?
+對於我可以測試的內容,看看將結果傳遞給活動而不是使用startActivityForResult是一種合理的方法。 –