最新回答 / sam寨
子進程中,這個可以類比網絡請求來理解客戶端發送請求給服務器,服務器和客戶端物理上就不是同一個機器,所以顯然是在兩個進程中,而客戶端在主線程發送請求當然會阻塞,除非請求的時候是在子線程中進行
2021-01-19
最新回答 / 慕絲4348654
確實是同一個模塊,但是在在不同的process,一個在mainactivity 的默認包進程,一個在:remote進程,所以也是實現了跨進程的。
2020-10-26
這節課最后老師說,Messenger不適合高并發,高并發的時候可能會導致主線程的阻塞,這個說法成立的前提是,你創建Messenger時使用的是主線程的Handler,但事實上,Mesenger并沒有對Handler做限制,因此我們可以創建自己的HandlerThread和Handler,在指定的線程中去做跨進程通信。而且個人覺得這種封裝糖其實挺好的,省去了我們手動將Binder線程中操作轉換到其他線程,比如主線程的操作。
當然一般的使用場景是,跨進程通信得到的結果或者數據最終是要在主線程中使用的。
當然一般的使用場景是,跨進程通信得到的結果或者數據最終是要在主線程中使用的。
2020-07-07
最新回答 / weixin_慕用2546013
首先你這是兩個問題,之所以用arraylist不行,是因為arraylist只是簡單根據元素是否相等去增加刪除,所以由于序列化的問題前后已經不是一個對象了,那么自然刪不掉,而用RemoteCallbackList可以,是因為內部使用的Ibinder來唯一標識的,所以可以刪掉,而后續也是在此基礎上,remote進程調用了主進程的消息接收服務。而消息類也加了in關鍵字,所以對象進行了寫入的操作。最后主進程才打印了remote進程傳的消息
2020-04-08