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

首頁 > 學院 > 開發(fā)設計 > 正文

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

2019-11-09 17:33:32
字體:
來源:轉載
供稿:網(wǎng)友

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

廣播簡介廣播實現(xiàn)(自定義廣播接受者和發(fā)送者)靜態(tài)廣播與動態(tài)廣播(動態(tài)大于靜態(tài))黏性廣播

什么是廣播?

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

廣播實現(xiàn)(自定義廣播接受者和發(fā)送者)

新建一個安卓項目然后布局文件代碼如下:發(fā)送者:<?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="請輸入廣播內(nèi)容" android:id="@+id/et_main_content" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="發(fā)送" 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(); //攜帶數(shù)據(jù) intent.putExtra("data",content); //發(fā)送廣播(無序廣播) sendBroadcast(intent); }}以上代碼實現(xiàn)了廣播發(fā)送者, sendBroadcast()代表無序
我們再來看接受者:

接受者1使用靜態(tài)廣播(同樣新建一個安卓項目新建一個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(我們使用動態(tài)) 還是和接受者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); } }}

不同的是動態(tài)廣播不需要清單文件的配置而是在java代碼中實現(xiàn)

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(); //動態(tài)注冊廣播 registerReceiver(myReceived02,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); //注銷動態(tài)廣播 unregisterReceiver(myReceived02); }}

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

黏性廣播

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

不過黏性廣播已經(jīng)過時了這里只需要了解即可


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 舒城县| 莎车县| 梁山县| 昭觉县| 和政县| 长春市| 台南市| 罗甸县| 南涧| 迁安市| 沁阳市| 彭阳县| 长垣县| 苍溪县| 贡嘎县| 阜康市| 满城县| 泽普县| 天门市| 玉溪市| 文昌市| 桦甸市| 开阳县| 柳河县| 濮阳市| 宁陵县| 德令哈市| 泰兴市| 深圳市| 师宗县| 余庆县| 临朐县| 清水河县| 右玉县| 达州市| 灵寿县| 大新县| 新疆| 塔河县| 古浪县| 东港市|