問題:單個模塊的某個activity需要動態(tài)添加啟動模式的話,如果單個模塊運行吸申,ok,不會有問題,但是整個項目運行的話梳侨,動態(tài)添加的啟動模式就不起作用走哺;
原因:https://github.com/wequick/Small/issues/415這個頁面中比較重要的話是,看了下丙躏,主要的問題在 CLEAR_TOP 這個 Flag 上,由于我們的占坑Activity的Component同為一個:net.wequick.small.A(以下簡寫為A)晒旅,包括你所舉例子中的 MainActivity。所以這個過程應(yīng)該是:
A A A A -> CLEAR_TOP啟動 -> AAAA-> 返回Finish ->A=> 桌面
雖然Small在應(yīng)用進程對 A 設(shè)置了targetActivity使其能正確跳往插件Activity谈秫,但是系統(tǒng)進程的緩存中targetActivity是空的拟烫,從而出現(xiàn)上述流程。源碼參見ActivityRecord.java构灸。
可能的解決方法:
某種方式hook掉ActivityRecord(在系統(tǒng)進程里喜颁,希望不大)
進入wrapIntent后曹阔,清除 CLEAR_TOP Flag,模擬底層處理方式
解決方法:在宿主中注冊赃份,并且不再單個模塊app.* 內(nèi)注冊,但是項目就必須整個模塊運行纠永,單個模塊就不行