17 广播

一、系统广播


​​​​
1、动态广播
 

package com.test;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.example.textmethod.R;

public class BCActivity extends Activity {
    NETchange neTchange;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_main);
        neTchange =new NETchange();
        IntentFilter intentFilter=new IntentFilter();
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        registerReceiver(neTchange,intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(neTchange);
    }

    class NETchange extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {


            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
          NetworkInfo networkInfo= connectivityManager.getActiveNetworkInfo();
          if (networkInfo!=null&&networkInfo.isAvailable()){
              Toast.makeText(BCActivity.this,"网络 is able",Toast.LENGTH_LONG).show();
          }else{
              Toast.makeText(BCActivity.this,"网络 is not able",Toast.LENGTH_LONG).show();
          }

        }
    }
}

2、静态广播


<receiver android:name="com.test.BCRevicer"
    android:exported="true">
    <intent-filter >
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
</receiver>
package com.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class BCRevicer  extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"phone start",Toast.LENGTH_LONG).show();
    }
}

二、 自定义广播

1 标准广播

package com.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class BCRevicer  extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"标准广播",Toast.LENGTH_LONG).show();
    }
}
package com.test;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.example.textmethod.R;

public class BCActivity extends Activity {



    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_main);
        Intent intent=new Intent("android.aaaa");
        intent.setComponent(new ComponentName("com.example.textmethod","com.test.BCRevicer"));
sendBroadcast(intent);
    }




}

 有序广播

package com.test;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.example.textmethod.R;

public class BCActivity extends Activity {


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_main);
        Button btn =findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new  Intent();
                intent.setAction("com.android.broadcasttest.MY_BACAST");
                sendBroadcast(intent);
            }
        });
        BCRevicer bcRevicer = new BCRevicer();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.android.broadcasttest.MY_BACAST");
        intentFilter.setPriority(88);
        registerReceiver(bcRevicer, intentFilter);



        BCRevicer1 bcRevicer2 = new BCRevicer1();
        IntentFilter intentFilter2 = new IntentFilter();
        intentFilter2.addAction("com.android.broadcasttest.MY_BACAST");
        intentFilter2.setPriority(100);
        registerReceiver(bcRevicer2, intentFilter);
    }


}

本地广播

package com.test;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;

import com.example.textmethod.R;

public class BCActivity extends Activity {
    BCRevicer bcRevicer;
    LocalBroadcastManager localBroadcastManager;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_main);
        Button btn = findViewById(R.id.btn);
        bcRevicer = new BCRevicer();
        localBroadcastManager=LocalBroadcastManager.getInstance(BCActivity.this);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.setAction("com.android.broadcasttest.MY_BACAST");
                localBroadcastManager.sendBroadcast(intent);
            }
        });

        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.android.broadcasttest.MY_BACAST");

        localBroadcastManager.registerReceiver(bcRevicer, intentFilter);


    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        localBroadcastManager.unregisterReceiver(bcRevicer);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值