当前位置: 移动技术网 > 移动技术>移动开发>Android > Android广播的两种注册方式及区别

Android广播的两种注册方式及区别

2018年02月15日  | 移动技术网移动技术  | 我要评论

借鉴自第一行

动态注册

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后。

注意,广播接收器不允许开线程,所以他扮演一个打开其他组件的角色。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网