BroadcastReceiver动态注册和静态注册哪个先执行
来源:互联网 发布:阿里云 直播 编辑:程序博客网 时间:2024/06/09 17:03
做了一个BroadcastReceiver动态注册和静态注册哪个先执行的试验,结果显示,动态注册的接收者会先执行。
第一个demo是在oncreate中动态注册;
第二个demo是通过点击按钮来动态注册(代码如下);
第三个demo将静态注册的广播接受者的priority设置成1000
得到结果都是一样。
动态注册广播的代码如下:
package com.example.receiverprioritytest;import android.os.Bundle;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {private BroadcastReceiver rec;private class CallRec extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("我是 register 注册的");}}public void click(View view) {IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);registerReceiver(rec, filter);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);rec = new CallRec();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}}静态注册广播的代码如下:
①、创建一个广播接收者
package com.example.receiverprioritytest;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class BroadCastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("我是 manifest 注册的");}}②在清单文件中配置
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.receiverprioritytest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.receiverprioritytest.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.example.receiverprioritytest.BroadCastReceiver"> <intent-filter android:priority="900"> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> </application></manifest>
0 0
- BroadcastReceiver动态注册和静态注册哪个先执行
- BroadcastReceiver(静态注册和动态注册)
- BroadCastReceiver 静态动态注册
- BroadCastReceiver 静态动态注册
- BroadcastReceiver静态和动态注册简单Demo
- BroadcastReceiver随笔(动态注册和静态注册)
- android—BroadcastReceiver 静态注册和动态注册Context理解
- BroadcastReceiver的两种注册方式(静态注册和动态注册)
- BroadcastReceiver的两种注册方式(静态注册和动态注册)
- BroadcastReceiver的两种注册方式(静态注册和动态注册)
- BroadcastReceiver的两种注册方式(静态注册和动态注册)
- BroadcastReceiver的两种注册方式(静态注册和动态注册)android开发教程
- BroadcastReceiver的两种注册方式(静态注册和动态注册)(转)
- Android BroadcastReceiver的注册方式静态和动态
- Android BroadcastReceiver 动态与静态注册
- BroadcastReceiver静态注册广播与动态注册广播接收器
- BroadCastReceiver静态注册、与动态注册的区别?
- Android:静态注册BroadcastReceiver
- 剑指offer面试题19
- python 搭建服务器
- 一句话真理
- Oracle Net Manager配置本地数据库连接,测试时卡死解决方法之一
- Java 多线程中Condition的使用
- BroadcastReceiver动态注册和静态注册哪个先执行
- 【leetcode】 Permutation Sequence
- C++类和对象的继承和派生
- 用python来为自己办事-抓取网页内容
- 掌握C++运算符重载
- 创建Python程序
- Java作用域public、protected、default、private
- Jump Game
- 【简单题】-POJ-3802-Cubist Artwork