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

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

廣播接收器的常用方法 時間: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號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 国产婷婷97碰碰久久人人蜜臀 | 日韩欧美精品免费在线| 在线精品国产欧美| 亚洲2020天天堂在线观看| 岛国精品视频在线播放| 欧美激情精品久久久久久变态| 久久久久久久久久久av| 欧美有码在线观看| 91久久精品久久国产性色也91| 亚洲电影av在线| 中文字幕久久久av一区| 久久成人一区二区| 亚洲天堂第一页| 欧美精品在线免费观看| 国模精品视频一区二区| 国产精品一区二区三区免费视频| 成人精品一区二区三区电影黑人| 亚洲欧洲第一视频| 欧美精品制服第一页| 日韩av123| 亚洲性av在线| 欧美激情亚洲激情| 成人激情av在线| 俺去了亚洲欧美日韩| 国产91av在线| 亚洲另类激情图| 欧美精品久久久久a| 国产日韩换脸av一区在线观看| 国产午夜精品全部视频在线播放| 欧美精品性视频| 91精品久久久久久久久久| 亚洲欧洲日产国产网站| 久久久久久久久久久av| 亚洲成人精品久久| 欧美日韩国内自拍| 91美女福利视频高清| 久久亚洲精品网站| 国产日韩在线视频| 欧美伦理91i| 亚洲娇小xxxx欧美娇小| 欧美日韩国产综合新一区|