當前位置:首頁 » 安卓系統 » android如何接收廣播

android如何接收廣播

發布時間: 2025-06-23 15:08:55

① Android 第六講 廣播接收器和服務

兩種方式:靜態注冊和動態注冊
動態注冊:

1)動態注冊:需要定義一個繼承自BroadcastReceiver類的子類,該接收器需要在Activity中的onDestroy中注銷
2)靜態注冊:通過在AndroidManifest.xml中配置

兩種廣播形式:有序廣播和無序廣播
1)無序廣播:接受標准廣播的接收器將同時收到廣播消息,非同步執行,沒有先後順序 sendBroadCast
2)有序廣播:sendOrderedBroadCast,按照一定順序先後被接受順序,由priority屬性決定,abortBroadCast中斷廣播

如果只想在本應用中發送和接受廣播,使用LocalBroadcastReceiver來對廣播進行管理
本地廣播不支持靜態注冊
優點 :安全高效

Service是Android中的一種組件,和Activity的級別一致,但不能自己運行,只能後台運行,和其他組件交互,服務必須注冊才能使用

本地服務:服務依附在主線程中,節約資源,主線程死掉服務終止
遠程服務:服務在獨立進程中,靈活性好 ,佔用資源高

兩種服務的啟動模式:
1)start方式:調用者和服務之間沒有關聯,調用者退出不會影響服務,startService啟動服務,如果服務不存在,調用onCreat方法,然後onStartCommand被調用。stopService關閉服務,onDestroy方法被調用
2)bind方式:調用者和服務綁定,調用者退出,服務終止bindService啟動服務,onCreate方法創建服務,onBind方法綁定服務,onUnbind方法解綁,onDestory在服務結束時調用

② 無收音機功能的安卓Android手機中怎麼收聽廣播

今天,小編給大家分享在無收音機功能的安卓Android手機中收聽廣播的方法,希望對大家有所幫助。
具體如下:
1. 首先,請大家在自己的手機中完成「中國廣播」App的下載和安裝,然後點擊打開這個App,來到它的主界面。

2. 第二步,我們來到如圖所示的新界面,請大家選擇其中的「電台」按鈕。

3. 第三步,接下來,請大家選擇新界面中的「本地台」選項。

4. 第四步,如圖所示,屏幕中出現了這樣的新界面,請大家根據自己所需選擇一個需要添加到收藏中的電台,然後點一下它後面的❤即可。

5. 有的朋友是首次使用這個App,那麼是要注冊的,我們需要先來到登錄界面,然後選擇其中的「注冊」選項。

6. 第六步,完成上一步後,請大家根據要求輸入手機號,接著即可獲取簡訊驗證碼,請輸入驗證碼,再選擇「下一步」就行了。

7.第七步,我們需要在新界面中輸入用戶昵稱,接著輸入密碼以及身份證號,完成後請選擇「提交注冊」選項。

8. 第八步,我們需要在如圖所示的「本地台」界面繼續上面講的第四步驟操作,這樣就能將自己喜歡的電台添加到收藏中了。

9. 第九步,我們還可以選擇一個電台然後進入它的播放界面,我們會在新界面中發現一個❤標志,這就表示我們已經收藏了該電台,我們還能點擊屏幕右上方的「分享」把此電台分享給好友呢。

10. 最後,屏幕中出現了如圖所示的新界面,請大家選擇自己喜歡的分享方法,這樣就能成功把電台分享出去。

③ 求高手 android開機廣播 為什麼在模擬器能接收到 在真機上卻接收不到

看系統版本, 低於 3.1的版本, 無需載體 , 廣播都能夠 自動運行 。 3.1以及以後的版本 ,廣播 需要有 Activity的支撐,並且運行程序後啟動一次,重新開機才能夠啟動廣播,就這點區別。

④ 注冊廣播有幾種方式,這些方式有何優缺點請談談Android引入廣播機制的用意。

android中,不同進程之間傳遞信息要用到廣播,可以有兩種方式來實現。
第一種方式:在Manifest.xml中注冊廣播,是一種比較推薦的方法,因為它不需要手動注銷廣播(如果廣播未注銷,程序退出時可能會出錯)。
具體實現在Manifest的application中添加:上面兩個android:name分別是廣播名和廣播的動作(這里的動作是表示系統啟動完成),如果要自己發送一個廣播,在代碼中為:
Intent i = new Intent(「android.intent.action.BOOT_COMPLETED」);
sendBroadcast(i);
這樣,廣播就發出去了,然後是接收。
接收可以新建一個類,繼承至BroadcastReceiver,也可以建一個BroadcastReceiver的實例,然後得寫onReceive方法,實現如下:
protected BroadcastReceiver mEvtReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(「android.intent.action.BOOT_COMPLETED」)) {
//Do something
}
}
};
第二種方式,直接在代碼中實現,但需要手動注冊注銷,實現如下:
IntentFilter filter = new IntentFilter();
filter.addAction(「android.intent.action.BOOT_COMPLETED」);
registerReceiver(mEvtReceiver, filter); //這時注冊了一個recevier ,名為mEvtReceiver,然後同樣用上面的方法以重寫onReceiver,
最後在程序的onDestroy中要注銷廣播,實現如下:
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(mPlayerEvtReceiver);
}

⑤ android 廣播自定義廣播接收問題

其實沒啥技術可言的,就是Android中可以自定義許可權的,對於四大組件的訪問加上一層保護,不多說了,直接上代碼:

發送廣播:

[java] view plain
package com.tt.test;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button)findViewById(R.id.button)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent("COM.MESSAGE");
i.addCategory("receiver");
i.putExtra("message", "haha");
sendOrderedBroadcast(i, "xvtian.gai.receiver");
}
});
}
}
AndroidManifest.xml:

[html] view plain
<uses-permission android:name="xvtian.gai.receiver" ></uses-permission>
<permission android:protectionLevel="normal" android:name="xvtian.gai.receiver"></permission>

接收廣播:

[java] view plain
package com.tt.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class Receiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
Log.d("TAG", "receiver intent:" + intent.toString());
}

}
AndroidManifest.xml

[html] view plain
<uses-permission android:name="xvtian.gai.receiver" ></uses-permission>
[html] view plain
<receiver android:name=".Receiver" android:permission="xvtian.gai.receivers">
<intent-filter>
<action android:name="COM.MESSAGE" />
<category android:name="receiver" />
</intent-filter>
</receiver>

熱點內容
php動態網站開發實例教程 發布:2025-06-23 18:28:17 瀏覽:348
腳本內容和主題方向區別 發布:2025-06-23 18:11:32 瀏覽:35
傳奇腳本大全視頻 發布:2025-06-23 18:08:23 瀏覽:805
八佰腳本 發布:2025-06-23 18:03:47 瀏覽:399
人類跌落夢境伺服器地址 發布:2025-06-23 18:02:29 瀏覽:420
王源少年密碼是多少 發布:2025-06-23 17:59:31 瀏覽:428
薄荷健康為什麼一直伺服器錯誤 發布:2025-06-23 17:58:51 瀏覽:967
蘋果的哪裡比安卓差 發布:2025-06-23 17:31:51 瀏覽:379
裝程序提示訪問違例 發布:2025-06-23 17:27:15 瀏覽:219
編程器的功能 發布:2025-06-23 17:21:33 瀏覽:174