1.Activity與Activity之間的通信
(1).Intent/Bundle
①可通過startActivity來開啟
②也可通過startActivityForResult來開啟活動同時傳遞結(jié)果
(2).類靜態(tài)變量
(3).全局變量
2.Activity與Fragment之間的通信
(1).Activity將數(shù)據(jù)傳遞給Fragment
①Bundle可以通過Bundle的key,value值綁定給另一個Activity
②直接通過Activity中定義方法,然后fragment直接獲取到方法
Activity中: ??向fragment傳遞數(shù)據(jù)
Fragment中: ??拿到它的數(shù)據(jù)
(2) .Fragment將數(shù)據(jù)傳遞給Activity
①在fragment中定義一個內(nèi)部回調(diào)接口,在讓包含Activity的Fragment實現(xiàn)這個接口配喳,然后這個Fragment就可以調(diào)用這個接口的方法
②fragment中的方法onAttach();
當(dāng)fragment添加Activity的時候會調(diào)用onAttach(),可以在這個這個方法中檢查是否實現(xiàn)fragment中定義的內(nèi)部接口
③調(diào)用OnDetach()方法椿争,這個時候要把傳遞過來的activity釋放掉福青,要不然會影響Activity的銷毀舶斧,導(dǎo)致內(nèi)存泄漏
3. Activity與Service之間的通信
(1)綁定服務(wù)利用ServiceConnection類(成功和失敗)
成功的時候會調(diào)用onserviceConnection
Activity實現(xiàn)ServiceConnection接口的時候會重寫一下方法
①首先創(chuàng)建MyBinder對象负芋,在OnServiceConnection中獲取這個對象
②利用寫好的setData進行傳遞數(shù)據(jù)
(2)通過Intent進行傳值
①.再啟動一個Activity的時候會構(gòu)建Intent對象向Service 傳值
startService()和stopService()都會傳入一個Intent 消别,通過Intent傳入一些參數(shù)
startService一個是key,一個是value值
startService()啟動服務(wù)低淡,stopService()終止服務(wù)
Activity中的實現(xiàn):
Service中的實現(xiàn):
onStartConmmand接收從Activity傳過來的方法
?? 內(nèi)部會傳入key值