iOS的組件間通訊方案核心問題是解決:注冊服務(wù)、發(fā)現(xiàn)服務(wù)、調(diào)用服務(wù)的過程,Android由于每個Activity在安裝時就被注冊到系統(tǒng)中且可以跨進程可見、跨進程調(diào)用,因此無需特殊實現(xiàn),使用隱式Intent即可。
針對iOS中的六種場景,Android對應(yīng)的實現(xiàn):
** 場景1:A組件內(nèi)部Activity互相調(diào)用:**
使用顯示Intent,eg:
startActivity(new Intent(this, AlbumActivity.class))
** 場景2:A組件的Activity1調(diào)用B組件的Activity2**
使用隱式Intent,eg:
startActivity(new Intent(Intent.ACTION_VIEW, "eg_album"))
** 場景3:外部應(yīng)用通過URL調(diào)用B組件的Activity2**
同場景2
** 場景4:A組件里的H5通過URL調(diào)用B組件的Activity2**
同場景2
** 場景5:A組件里的H5通過URL調(diào)用A組件里的Activity1**
同場景2
** 場景6:A組件的VC1調(diào)用B組件的VC2,并需要拿到VC2的業(yè)務(wù)處理結(jié)果**
同場景2,調(diào)用方法改為startActivityForResult
注意:
由于Android Activity注冊服務(wù)是跨進程可見且跨進程可調(diào)用的,因此需要對訪問者身份及安全性做校驗。