定义 :即广播,是一个全局的监听器,属于Android四大组件之一。Android广播分为两个角色:广播发送者、广播接收者。
作用:监听/接受 应用App发出的消息
原理

系统发广播 APP接受接收
MainActivity类
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
public static TextView textView;
private MyBroadcastReceiver myBroadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
}
@Override
protected void onResume() {
super.onResume();
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
/***
* Android中内置了多个系统广播:只要涉及到手机的基本操作(如开机、网络状态变化、拍照等等),都会发出相应的广播
* 每个广播都有特定的Intent - Filter(包括具体的action)我现在用的就是飞行模式的
*/
intentFilter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
//动态注册广播 Android 8.0 取消了大部分静态注册广播
registerReceiver(myBroadcastReceiver,intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
//销毁广播
unregisterReceiver(myBroadcastReceiver);
}
}
MyBroadcastReceiver类
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyBroadcastReceiver extends BroadcastReceiver {
//接收到广播之后会执行的方法
@Override
public void onReceive(Context context, Intent intent) {
MainActivity.textView.setText("开启了飞行模式");
}
}
效果图

网友评论