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

首頁 > 學院 > 開發設計 > 正文

安卓之自定義廣播發送者和接受者(動態-靜態-黏性)

2019-11-09 16:29:53
字體:
來源:轉載
供稿:網友

安卓之自定義廣播發送者和接受者(動態-靜態-黏性)

廣播簡介廣播實現(自定義廣播接受者和發送者)靜態廣播與動態廣播(動態大于靜態)黏性廣播

什么是廣播?

一聽到廣播我們第一感覺就會聯想到小時候村里面的廣播,每逢村里有什么活動都是通過廣播發送的。收聽收音機也是一種廣播,在收音機中有很多個廣播電臺,每個廣播電臺播放的內容都不相同。接受廣播時廣播(發送方)并不在意我們(接收方)接收到廣播時如何處理。好比我們收聽交通電臺的廣播,電臺中告訴我們現在在交通狀況如何,但它并不關心我們接收到廣播時做如何做出處理,這不是廣播應該關心的問題,OK,到這里我們從生活中的一些小例子淺淺的理解了一下廣播,那么Android 中的廣播是如何操作的呢?

廣播實現(自定義廣播接受者和發送者)

新建一個安卓項目然后布局文件代碼如下:發送者:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.zy.android_sender.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入廣播內容" android:id="@+id/et_main_content" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="發送" android:onClick="send" /></LinearLayout>java代碼:package com.zy.android_sender;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class MainActivity extends AppCompatActivity { PRivate EditText et_main_content; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_main_content = (EditText) findViewById(R.id.et_main_content); intent = new Intent(); //設置廣播的名字(設置Action) intent.setAction("com.zy.android_sender.955"); } public void send(View view){ String content=et_main_content.getText().toString(); //攜帶數據 intent.putExtra("data",content); //發送廣播(無序廣播) sendBroadcast(intent); }}以上代碼實現了廣播發送者, sendBroadcast()代表無序
我們再來看接受者:

接受者1使用靜態廣播(同樣新建一個安卓項目新建一個java類就行)

public class MyReceived01 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("com.zy.android_sender.955".equals(intent.getAction())){ String data=intent.getStringExtra("data"); Log.i("test","01號接受者收到廣播了:"+data); } }}AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zking.android_received01"> <application android:allowBackup="true" android:icon="@m接受者2(我們使用動態) 還是和接受者1一樣新建一個類然后繼承自BroadcastReceiverpublic class MyReceived02 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("com.zy.android_sender.955".equals(intent.getAction())){ String data=intent.getStringExtra("data"); Log.i("test","02號接受者收到廣播了:"+data); } }}

不同的是動態廣播不需要清單文件的配置而是在java代碼中實現

public class MainActivity extends AppCompatActivity { private MyReceived02 myReceived02; private IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myReceived02 = new MyReceived02(); intentFilter = new IntentFilter(); intentFilter.addAction("com.zy.android_sender.955"); } @Override protected void onResume() { super.onResume(); //動態注冊廣播 registerReceiver(myReceived02,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); //注銷動態廣播 unregisterReceiver(myReceived02); }}

需要注意的是動態廣播需要在onDestroy()方法中注銷動態廣播 到這個里自定義廣播接受者和發送者就完成了,大家可以跟著步驟看看這倆接受者的特點

黏性廣播

粘性廣播的特點是Intent會一直保留到廣播事件結束操作步驟 在發送者中將sendBroadcast(intent);改成 sendStickyBroadcast(intent); 然后在清單文件中加入權限 <uses-permission android:name="android.permission.BROADCAST_STICKY"></uses-permission>

不過黏性廣播已經過時了這里只需要了解即可


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铜梁县| 澄江县| 上饶市| 霍林郭勒市| 喀喇沁旗| 彭山县| 澄城县| 渭南市| 丰城市| 峡江县| 文登市| 健康| 新乡市| 呼图壁县| 南部县| 齐河县| 太谷县| 三门峡市| 香格里拉县| 河北区| 同心县| 贵德县| 威海市| 武宁县| 嘉义县| 呼伦贝尔市| 泌阳县| 长汀县| 乐安县| 岗巴县| 松原市| 佛山市| 井冈山市| 阿拉善左旗| 乐至县| 项城市| 阜平县| 石屏县| 台安县| 天门市| 西城区|