導航:首頁 > 操作系統 > android廣播注冊

android廣播注冊

發布時間:2022-04-23 22:36:23

㈠ 安卓開發 廣播注冊問題

你在androidManifest里靜態注冊的廣播在你的app沒有運行的期間是不會佔用你的app資源的, 它是在android包管理伺服器有一個索引, 當監聽的廣播發出來的時候, 包管理服務會找到你的靜態注冊, 然後喚起你的app, 進入廣播監聽器的onReceive方法, 執行完後廣播監聽器的生命周期也就結束了, 使用的資源被釋放。動態注冊必須是在你的app運行期間要佔用資源, 需要主動釋放, 所以實際上是動態注冊相對來說更占資源。動態注冊的使用場景是,動態注冊的優先順序比靜態注冊的高, 廣播會先發到動態注冊的監聽器, 可以靈活在需要的時候register,不需要的時候unRegister。

㈡ Android靜態注冊廣播和動態注冊廣播的區別

1.動態注冊廣播不是常駐型廣播,也就是說廣播跟隨activity的生命周期。注意: 在activity結束前,移除廣播接收器。
靜態注冊是常駐型,也就是說當應用程序關閉後,如果有信息廣播來,程序也會被系統調用自動運行。
它的生命周期為從回調onReceive()方法開始到該方法返回結果後結束。
2.當廣播為有序廣播時:
1 優先順序高的先接收
2 同優先順序的廣播接收器,動態優先於靜態
3 同優先順序的同類廣播接收器,靜態:先掃描的優先於後掃描的,動態:先注冊的優先於後注冊的。

㈢ android中注冊廣播有幾種方式,這些方式的優缺點,談談android引入廣播的用意

2種方式
1.在androidmainfest.xml中注冊
2.<receiver>
3. <intent-filter>
4. <action android:name = "android.intent.action.PICK"/>
5. </intent-filter>
6.</receiver>
7.缺點:常駐型,占資源比較大
8.
9.registerReceiver(receiver,filter); BroadcastReceiver更新UI一般用這種方法

㈣ android 內部類的廣播 怎麼注冊常駐型廣播

在AndroidManifest.xml文件中的<application>節點里進行訂閱,比如和開機廣播
<receiver android:name=".IncomingSMSReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>

㈤ Android開發中廣播的作用及注冊方式,

廣播是一種運用的在應用程序之間傳輸信息的機制。而BroadcastReceiver 是對發送出來的Broadcast進行過濾接受並響應的一類組件。廣播既可以在清單文件AndroidManifest.xml 中注冊,也可以在運行時的代碼中使用Context.registerReceiver()進行注冊。只要是注冊了,當事件來臨的時候,即使程序沒有啟動,系統也在需要的時候啟動程序。

㈥ android 注冊廣播有多少種方式

有兩種注冊廣播方式:
1.常駐型廣播
常駐型廣播,當應用程序關閉了,如果有廣播信息來,寫的廣播接收器同樣的能接收到,它的注冊方式就是在應用程序的AndroidManifast.xml 中進行注冊,這種注冊方式通常又被稱作靜態注冊。這種方式可以理解為通過清單文件注冊的廣播是交給操作系統去處理的。示例代碼如下:
AndroidManifest.xml中配置廣播

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="spl.broadCastReceiver"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".BroadCastReceiverActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<!--廣播注冊、name裡面填寫廣播類的路徑-->
<receiver android:name=".SmsBroadCastReceiver">
<intent-filter android:priority="20">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>

</application>

<uses-sdk android:minSdkVersion="7" />

<!-- 許可權申請 -->
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>

</manifest>

2.非常駐型廣播
非常駐型廣播,當應用程序結束了,廣播自然就沒有了,比如在 Activity 中的 onCreate 或者 onResume 中注冊廣播接收者,在 onDestory 中注銷廣播接收者。這樣廣播接收者就一個非常駐型的了,這種注冊方式也叫動態注冊。這種方式可以理解為通過代碼注冊的廣播是和注冊者關聯在一起的。比如寫一個監聽 SDcard 狀態的廣播接收者:
package cn.sunzn.mosecurity.activity;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Environment;

public class SDcard extends Activity {
SdcardStateChanageReceiver sdcardStateReceiver;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sdcardStateReceiver = new SdcardStateChanageReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_REMOVED);
filter.addAction(Intent.ACTION_MEDIA_EJECT);
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addDataScheme("file");
registerReceiver(sdcardStateReceiver, filter);
}

protected void onDestroy() {
unregisterReceiver(sdcardStateReceiver);
}

class SdcardStateChanageReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
checkSDCard();
}

public void checkSDCard() {
String state = Environment.getExternalStorageState();
System.out.println(state);
if (state.equals(Environment.MEDIA_REMOVED) || state.equals(Environment.MEDIA_UNMOUNTED)) {
System.out.println("SDCard 已卸載!");
}
}
}
}

㈦ android注冊廣播有幾種方式

注冊方式有兩種:
1、靜態注冊,就是在manifest文件里配置一下,這種方式注冊的廣播屬於系統級廣播。你的應用沒打開也能收到廣播。比如你要做一個收到某廣播就啟動你的應用的功能可以這樣搞。
2、動態注冊,在代碼里執行一個rigisterBroadcastReciver(可能拼寫有誤)的方法。這種你要自己作好反注冊。這種廣播可以做成你的應用啟動後才監聽,關閉後就不監聽的效果。

㈧ android 廣播怎麼判斷是否已注冊

Android中實現判斷一個BroadcastReceiver是否已經注冊
使用代碼進行訂閱

在AndroidManifest.xml文件中的節點里進行訂閱:

注冊完之後即可以發送廣播,使用Context.sendBroadcast()、Context.sendOrderedBroadcast()或者Context.sendStickyBroadcast()來實現,接收端代碼:

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

  1. 注冊廣播的分類:靜態注冊和動態注冊。

    靜態注冊:在清單文件里直接注冊,從app開啟到app銷毀,一直在接收廣播,接收廣播時間長,但是接收廣播的優先順序低於動態注冊廣播。

    動態注冊:動態注冊,動態銷毀,從onCreate到取消注冊,期間接收廣播,接收廣播時間是短且可控,接收廣播的優先順序高。例如:

    發送廣播:
    Intent i = new Intent();
    i.setAction("ACTION_CLOSE");
    sendBroadcast(i);

    接受廣播:
    onCreate(){

    //注冊廣播的接受者
    IntentFilter filter = new IntentFilter();
    filter.addAction("ACTION_CLOSE_ACTIVITY");
    receiver = new InnerReceiver();
    registerReceiver(receiver, filter);
    }

    private class InnerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    //TODO 當前Activity接收到廣播 需要做的事情
    }
    }
    }

    //注銷廣播

    @Override
    protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(receiver);
    }


2.引入廣播的原因:

a) 不同的app之間傳信通用

b)發出一條指定,需要多個Activity都需要有反應


注意:以上僅供參考,如有疑問,請追問,謝謝。

閱讀全文

與android廣播注冊相關的資料

熱點內容
怎麼把app裡面的app上鎖 瀏覽:938
java數字運算 瀏覽:164
java讀取上傳的文件 瀏覽:373
xp怎麼加密文檔 瀏覽:273
壓縮機風扇電機轉速慢 瀏覽:88
文件伺服器如何查看訪問人員 瀏覽:127
絕佳買賣指標加密 瀏覽:758
git分支編譯 瀏覽:156
51單片機c語言應用程序設計實例精講 瀏覽:562
華為安卓手機編譯器 瀏覽:48
怎樣在打開微信前加密 瀏覽:666
旺旺聊天記錄怎麼加密 瀏覽:413
王安憶長恨歌pdf 瀏覽:621
mobile文件夾可以卸載嗎 瀏覽:282
什麼是2通道伺服器 瀏覽:346
mc正版怎麼開伺服器地址 瀏覽:408
樂高解壓朋友圈 瀏覽:14
linux軟raid性能 瀏覽:369
貼片機編程軟體下載 瀏覽:360
mooc大學樂學python答案 瀏覽:408