广播

2019-08-14  本文已影响0人  鴻9527

定义 :即广播,是一个全局的监听器,属于Android四大组件之一。Android广播分为两个角色:广播发送者、广播接收者。

作用:监听/接受 应用App发出的消息

原理

image

系统发广播 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("开启了飞行模式");
    }
}

效果图

image
上一篇 下一篇

猜你喜欢

热点阅读