您好,登錄后才能下訂單哦!
Activity通過綁定的方式調(diào)用Service的方法的步驟:
1、在Service里面創(chuàng)建一個類MyBinder繼承Binder
2、在MyBinder這個類里面創(chuàng)建一個方法去調(diào)用Service里面的方法。
3、在onBinder這個方法里面,創(chuàng)建一個MyBInder類型的對象,返回回去。
4、在Activity中的ServiceConnection這個接口的onServiceConneted這個方法中得到IBinde對象,
把IBinder對象轉(zhuǎn)換成MyBinder類型的對象。
注意:onServiceConneted能夠被執(zhí)行的條件:service的onBind()方法里面返回一個非空的對象。
四大組件之三:
BroadReceiver廣播接收者
創(chuàng)建的要素:
1、繼承BroadcastReceiver
2、重寫onReceive()
3、清單文件里面注冊
接收短信廣播
過濾條件:
在清單文件里面:
<intent-filter>
<actionandroid:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
權(quán)限:
<uses-permissionandroid:name="android.permission.RECEIVE_SMS"/>
廣播接收者:
廣播的特性:單向、群發(fā)。
場景:1)系統(tǒng)接收某個事件,會群發(fā)廣播消息
2)應(yīng)用自己發(fā)廣播。:sendBroadcast(intent);
代碼里面注冊廣播接收者:
1、MyReceiverreceiver=newMyReceiver();
2、在onstart()方法里面注冊:
IntentFilterfilter=newIntentFilter();
filter.addAction("org.yinan");//設(shè)置過濾條件
registerReceiver(receiver,filter);//注冊廣播
3、在onStop()注銷廣播:
unregisterReceiver(receiver);//參數(shù)里面的receiver對象必須跟注冊的時候同一對象。
兩種注冊廣播的區(qū)別:
相同:項(xiàng)目里面必須要創(chuàng)建BroadcastReceiver。
不同點(diǎn):1)清單文件里面:設(shè)置<intent-filter>標(biāo)簽里面的<action>屬性
特性:就算進(jìn)程不存在的時候,只要廣播的過濾條件匹配就會收到廣播
2)在代碼里面:獲取廣播接收者對象。然后設(shè)置過濾條件。
特性:注冊時機(jī)比較靈活,我們可以自己控制。
intent意圖
顯式意圖:明確指定類名;意圖對象.setClass(xx.this,xxx.class);
隱式意圖:沒有明確指定類名,指定了過濾條件意圖對象.setACtion("xxxxx.xxxx.xxx");
兩者之間的區(qū)別:
啟動目標(biāo):顯式1個(直接打開)必須在一個應(yīng)用之內(nèi)
隱式一個或多個(多個的話就列表打開)跨應(yīng)用
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。