国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Adroid 廣播

2019-11-09 17:25:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Adroid 廣播 分為有序和無(wú)序廣播 sendOrderBroadcast 、sendBroadcast。

無(wú)序廣播。 廣播發(fā)送方: 實(shí)例化一個(gè)Intent,用intent.setAction(設(shè)置廣播名字),并且攜帶要發(fā)送的 數(shù)據(jù)(intent.putExtra),然后用sendBroadcast(intent)發(fā)送廣播。

intent = new Intent(); //設(shè)置名字 intent.setAction("com.example.phonebroad.955"); } public void send(View view){ //獲取發(fā)送的內(nèi)容 String date=mian_01.getText().toString(); intent.putExtra("data",date); sendBroadcast(intent); //粘性廣播 (也分為有序和無(wú)序 已過(guò)時(shí),使用這個(gè)api需要權(quán)限android.Manifest.permission.BROADCAST_STICKY,粘性廣播的特點(diǎn)是Intent會(huì)一直保留到廣播事件結(jié)束,而這種廣播也沒(méi)有所謂的10秒限制,10秒限制是指普通的廣播如果onReceive方法執(zhí)行時(shí)間太長(zhǎng),超過(guò)10秒的時(shí)候系統(tǒng)會(huì)將這個(gè)廣播置為可以干掉的candidate,一旦系統(tǒng)資源不夠的時(shí)候,就會(huì)干掉這個(gè)廣播而讓它不執(zhí)行。)api需要權(quán)限:<uses-permission android:name="android.permission.BROADCAST_STICKY"></uses-permission><application //sendStickyBroadcast(intent); }

接收方: 需要配置廣播接受者: 1.在清單文件中配置(靜態(tài)廣播 )

<receiver android:name=".ReceviedActivity"> <intent-filter> <action android:name="com.example.phonebroad.955"></action> </intent-filter> </receiver> </application>public class ReceviedActivity extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //判斷你要接收的廣播的名字 if("com.example.phonebroad.955".equals(intent.getAction())){ //接收內(nèi)容 String data=intent.getStringExtra("data"); Log.i("hhhhhh",data); } } 2.使用java 代碼(動(dòng)態(tài)廣播 優(yōu)先于靜態(tài)廣播接收)public class Recevied2 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("com.example.phonebroad.955".equals(intent.getAction())){ String data=intent.getStringExtra("data"); Log.i("hhhh2",data); } }}public class MainActivity extends AppCompatActivity { PRivate Recevied2 recevied2; private IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recevied2 = new Recevied2(); //意圖過(guò)濾器 intentFilter = new IntentFilter(); intentFilter.addAction("com.example.phonebroad.955"); }//恢復(fù)時(shí)注冊(cè) @Override protected void onResume() { super.onResume(); registerReceiver(recevied2,intentFilter); }//銷毀時(shí)取消注冊(cè) @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(recevied2); }}

系統(tǒng)廣播之監(jiān)聽(tīng)手機(jī)通話狀態(tài)事件

public class PhoneActivity extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { if("android.intent.action.PHONE_STATE".equals(intent.getAction())){ //獲取電話號(hào)碼 String number=intent.getStringExtra("incoming_number"); Log.i("phone","大胡子:"+number); //電話管理者 TelephonyManager tm= (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); //來(lái)電狀態(tài) int state=tm.getCallState(); //3個(gè)狀態(tài) switch (state) { case TelephonyManager.CALL_STATE_RINGING: Log.i("test","響鈴"); break; case TelephonyManager.CALL_STATE_OFFHOOK: Log.i("test","接通"); break; case TelephonyManager.CALL_STATE_IDLE: Log.i("test","掛斷"); break; } } }}配置權(quán)限及廣播接受者<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <application android:allowBackup="true" android:icon="@m“合抱之木,生于毫末;九層之臺(tái),起于累土;千里之行,始于足下。“


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤台县| 开江县| 开江县| 科技| 保定市| 尉犁县| 台东市| 华容县| 舟曲县| 淮南市| 大安市| 铜陵市| 厦门市| 湖北省| 黄石市| 嘉荫县| 吉木乃县| 湘阴县| 平山县| 长阳| 绥棱县| 陆河县| 象山县| 堆龙德庆县| 扎兰屯市| 双流县| 金塔县| 洮南市| 东港市| 京山县| 海丰县| 确山县| 昌江| 贵阳市| 呼伦贝尔市| 龙里县| 北流市| 蓝山县| 鹤峰县| 察哈| 农安县|