Android 裡的各種通訊方式(四)

2021-07-25 02:23:27 字數 1718 閱讀 8969

五:廣播

android開發中如果需要對兩個完全沒關係的程式之間進行通訊

就可以使用傳送廣播與接收廣播的機制來實現

,例如程式a傳送了乙個廣播 程式b接受到 做一些事情 這樣就達到了相互的通訊。 

public class broadcastactivity extends activity else if(action.equals(send_cancle_message)) {    

toast.maketext(context, "接收到了一條廣播為" + send_cancle_message, toast.length_long).show();    

@override    

public void oncreate() {    

super.oncreate();    

@override    

public void onstart(intent intent, int startid) {    

//註冊這兩個廣播    

intentfilter myfilter = new intentfilter();    

myfilter.addaction(send_ok_message);    

myfilter.addaction(send_cancle_message);    

this.registerreceiver(mybroadcast, myfilter);    

super.onstart(intent, startid);    

@override    

public ibinder onbind(intent arg0) {    

return null;    

這裡注意一下 service如果沒有起來 我們是接收不到廣播的 所以一定要保證接收的時候service是開啟的,上例中的service是在開啟activity時開啟的 但是如果使用者把手機關掉然後在開機 , 這樣的話service就不是開啟狀態 這樣就非常危險了因為這時scrvice就接收不到任何訊息了除非使用者再次進activity 才會幫他開啟scrvice 所以我們可以在使用者開機後就直接將scrvice開啟,具體的實現方式如下   

在androidmanifest.xml中註冊乙個開機廣播  這個廣播系統只會在開機發出而且只會發出一次 所以我們接收這個廣播就可以知道手機是否為開機狀態   

注意加入許可權

在broadcastrecevier中接收開機廣播  然後開啟service 就可以實現開機啟動service。   

public class mybootreceiver extends broadcastreceiver {    

/**開機廣播**/    

static final string boot_completed = "android.intent.action.boot_completed";     

@override    

public void onreceive(context context, intent intent) {    

/**如果為開機廣播則開啟service**/    

if (intent.getaction().equals(boot_completed)) {    

intent i = new intent(context, myservice.class);    

context.startservice(i);    

集結Android開發裡的各種大神

國內 trinea t大 t大部落格 codekk t大主導的開源專案集合及原始碼解析 codekk 鴻洋神 鴻洋神的csdn 任玉剛 android開發藝術探索作者 任大的csdn 郭霖 第一行 作者 郭大俠的csdn 胡凱 胡凱部落格 老羅 底層牛人,在下水平不夠,看得很少 老羅的csdn 乾貨...

關於Vue的各種通訊方式

vue通訊應該是乙個老生常談的問題,面試也經常會有相關的問題,我之前作答往往是prop父傳子,emit子傳父,vuex複雜元件之間通訊,bus全域性通訊如果不採用vue的通訊方式我們還可以使用web儲存 不推薦 自我感覺已經算很完美的回答了呀,現在想想可真的太無知了,今天詳細介紹一下vue各種通訊方...

關於android中的通訊方式

主要有三種方法,一為handler,二為asynctask,三為自己開子執行緒執行耗時操作,然後呼叫activity的runonuithread 方法更新ui handler機制是,在主線程中建立handler物件,當執行耗時操作時,新建乙個執行緒,在這個執行緒中執行耗時操作,通過呼叫handler...