色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 廣播接收器的常用方法

廣播接收器的常用方法 時間:2018-09-26      來源:未知

廣播接收器是Android四大組件之一, 是Android組件之間的通信一種方式,適用于以下情況:

第一種 : 同一app內部的同一組件內的消息通信(單個或多個線程之間);

第二種 : 同一app內部的不同組件之間的消息通信(單個進程);

第三種 : 同一app具有多個進程的不同組件之間的消息通信;

第四種 : 不同app之間的組件之間消息通信;

第五種 : Android系統在特定情況下與App之間的消息通信。

廣播接收器的生命周期

只有一個 onReceive()方法

發送廣播

第一種 :顯示廣播 Intent intent = new Intent(this, MyReceicer.class); 傳遞包含信息

第二種 :隱式廣播 應用 action --- "暗號"

Intent intent = new Intent(action);

在清單文件中 注冊廣播

BroadcastReceiver總體上可以分為兩種注冊類型:靜態注冊和動態注冊

例子 1:普通廣播: 自定義一個廣播接收器類,實現能接收廣播信息

按鈕觸發-----> 發送廣播 -----> 自定義廣播接收器 ----> 吐司顯示

(1)創建自定義廣播接收器類 MyBroadcastReceiver 繼承 BroadcastReceiver

覆蓋 onReceive() 方法 寫入執行的操作(不能太耗時):

public class MyBroadcastReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

Toast.makeText(context, intent.getStringExtra("name"),

Toast.LENGTH_LONG).show();

}

}

自定義廣播接收器需要繼承基類BroadcastReceivre,并實現抽象方法onReceive(context, intent)方法。廣播接收器接收到相應廣播后,會自動回到onReceive(..)方法。

(2)靜態注冊廣播接收器 : 在AndroidManifest.xml 清單文件中加入 receiver聲明

........................

(3)在活動的布局文件中,設置 一個按鈕 Button 設置id 長 寬

android:id="@+id/button1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/textView1"

android:layout_marginLeft="46dp"

android:layout_marginTop="71dp"

android:layout_toRightOf="@+id/textView1"

android:onClick="onClick" 設置監聽

android:text="點擊發送廣播" />

(4)在布局文件對應的.java活動文件中, 出現

 

 

鼠標點擊 選擇第一項添加onClick()方法

 

 

在方法內添加 發送廣播命令語句:這是只要 用戶點擊按鈕,就會發送廣播

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Intent in = new Intent("mybroadcast");

in.putExtra("name", "zhangsan");

sendBroadcast(in);

}

(5)啟動模擬器, 運行當前的android 工程, 點擊按鈕,觀察是否有吐司出現。

例子2:使用系統廣播,獲取電池電量,并用動態注冊廣播接收器方式實現:

(1)在布局文件中, 加入一個進度條:

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:indeterminate="false"

style="?android:attr/progressBarStyleHorizontal"

android:layout_gravity="bottom">

(2)在主Activity中, 聲明一個屬性 ProgressBar pb;

(3)在onCreate() 中 pb 綁定id :

pb = (ProgressBar) findViewById(R.id.progressBar1);

(4)自定義一個類BatteryReceiver 繼承 BroadcastReceiver

覆蓋 onReceive() 方法:

private class BatteryReceiver extends BroadcastReceiver {

int level = 0;

int scale = -1;

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

if (scale == -1) {

scale = intent.getIntExtra("scale", 0);

pb.setMax(scale);

}

level = intent.getIntExtra("level", 0);

pb.setProgress(level);

}

}

(5)在onCreate()方法中, 動態注冊廣播接收器:

動態注冊時,無須在AndroidManifest中注冊組件。直接在代碼中通過調用Context的registerReceiver函數,可以在程序中動態注冊BroadcastReceiver。

添加:

registerReceiver(new BatteryReceiver(), new IntentFilter(

Intent.ACTION_BATTERY_CHANGED));

后onCreate()方法:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

pb = (ProgressBar) findViewById(R.id.progressBar1);

registerReceiver(new BatteryReceiver(), new IntentFilter(

Intent.ACTION_BATTERY_CHANGED));

}

(6)打開模擬器, 執行Android 程序。

上一篇:OpenWrt筆記---lua環境搭建

下一篇:C++中的標準輸入和輸出

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 欧美精品成人在线| 国产精品你懂得| 大伊人狠狠躁夜夜躁av一区| 超碰91人人草人人干| 欧美成人免费一级人片100| 精品国产精品自拍| 午夜精品美女自拍福到在线| 欧美中文字幕视频在线观看| 国产91在线高潮白浆在线观看| 国产成人亚洲综合| 成人黄色片在线| 日韩精品在线观看视频| 在线成人一区二区| 精品久久久久久久久久久久久| 97精品国产aⅴ7777| 国产精品综合久久久| 日韩激情在线视频| 久久精品亚洲热| 18性欧美xxxⅹ性满足| 国产日韩在线播放| 一本色道久久综合亚洲精品小说 | 不卡毛片在线看| 久久久久一本一区二区青青蜜月| 国产精品美乳在线观看| 亚洲免费电影一区| 丰满岳妇乱一区二区三区| 国产精品av在线| 亚洲丝袜av一区| 欧美激情伊人电影 | 38少妇精品导航| 亚洲第一区第一页| www.久久色.com| 国产999精品| 亚洲天堂av在线免费观看| 欧美色图在线视频| 91精品视频在线免费观看| www.亚洲一区| 国产精品久久久久久久天堂| 在线观看国产精品91| 91精品国产乱码久久久久久久久 | 色av吧综合网|