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