五:廣播
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...