Android广播的两种注册方式及区别
程序员文章站
2022-06-28 09:56:50
借鉴自第一行
动态注册
public class MainActivity extends AppCompatActivity { private static final...
借鉴自第一行
动态注册
public class MainActivity extends AppCompatActivity { private static final String TAG = "xbh"; private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewGroup root = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.activity_main, null, false); setContentView(root); intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver, intentFilter); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(networkChangeReceiver); } class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } } }
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>监听了网络。IntentFilter中的action是我们想监听的广播。要记得取消注册。
静态注册
动态注册很灵活,但是程序启动之后才能接受到广播。这个时候可以用静态注册。
新建一个BroadcastReceiver
<receiver android:name=".BootCompleteReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> intent-filter> receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>这样就可以监听到开机了。
区别就是一个在app前,一个在app后。
注意,广播接收器不允许开线程,所以他扮演一个打开其他组件的角色。
上一篇: 新媒体环境中的软文推广究竟该怎么做
推荐阅读
-
Android 启动 Service(startservice和bindservice) 两种方式的区别
-
Android 注册广播的两种方式对比
-
Android 注册广播的两种方式对比
-
android获取图片尺寸的两种方式及bitmap的缩放操作
-
Android广播的两种注册方式及区别
-
Android 注册广播的两种方式区别
-
HTTP两种请求方式的区别及CSS的层叠样式表和选择器
-
两种隐藏元素方式【display: none】和【visibility: hidden】的区别及由此引出的问题_html/css_WEB-ITnose
-
android获取图片尺寸的两种方式及bitmap的缩放操作
-
两种隐藏元素方式【display: none】和【visibility: hidden】的区别及由此引出的问题_html/css_WEB-ITnose