色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

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

廣播接收器的常用方法 時間: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无码 | 性奴老师穿乳环上锁野外调教 | 日本乱子人伦在线视频 | 午夜DJ在线观看免费视频 | 粗大猛烈进出高潮视频免费看 | 色国产精品女五丁香五月五月 | 岛国无码免费不卡av | 无码精品人妻一区二区三区九里奈 | 天天摸天天摸天天天天看 | 欧美日本免费一区二区三区 | 坠落jk与废人老师 | 色婷婷综合激情综在线播放 | 中文字幕中文字幕中文字幕亚洲无线 | 99久热re在线精品99re8热视频 | 久久不见久久见免费影院观看 | RUNAWAY在线观看韩国动漫 | 久久影院综合精品 | 无限资源最新资源免费看 | 国产精品夜间视频香蕉 | 人人妻碰人人免费 | 亚洲AV成人一区二区三区天堂 | 亚洲人成网站在线播放vr | 亚洲色图 偷拍自拍 | 尤物亚洲AV无码精品色午夜 | 亚洲综合AV一区二区三区不卡 | 无码国产一区二区三区四区 | 无翼乌18禁全肉肉无遮挡彩色 | 性欧美大战久久久久久久黑人 | 久久99热只有频精品8 | 国产在线无遮挡免费观看 | 日韩在线一区二区不卡视频 | AV在线观看地址 | 97久人人做人人妻人人玩精品 | 亚洲色18成人网站www | 亚洲AV无码国产精品色 | 在线免费观看毛片 | 少妇多水XXXX色情免费 | 日本精品αv中文字幕 | 免费毛片在线看片免费丝瓜视频 | 国产在线精品国自产拍影院同性 | 无码少妇一区二区三区芒果 |