Broadcast的实现_简单的通知


版权声明:本文为博主原创文章,未经博主允许不得转载。

https://blog.csdn.net/weixin_40790006/article/details/79915466


帮助类:

通知:

package com.example.f405.broadcasttest.utils;

import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.provider.Settings;
import android.support.v4.app.NotificationCompat;

import com.example.f405.broadcasttest.R;

/**
 * Created by F405 on 2018/4/12.
 */

public class BootBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 通知栏,系统服务
        NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        // 通知栏配置
        Notification notification = new NotificationCompat.Builder(context)
                .setContentTitle("title")
                .setContentText("content")
                .setWhen(System.currentTimeMillis())
                .setSmallIcon(R.mipmap.ic_launcher_round)
               .setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.mipmap.ic_launcher))
                .build();
        // 显示通知栏
        manager.notify(1,notification);

    }
}

网络状态:

package com.example.f405.broadcasttest.utils;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.widget.Toast;

/**
 * Created by F405 on 2018/4/12.
 */

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

        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
        if (activeNetworkInfo != null && activeNetworkInfo.isAvailable()){
            Toast.makeText(context, "网络已连接", Toast.LENGTH_SHORT).show();
        }else {
            Toast.makeText(context, "网络未连接", Toast.LENGTH_SHORT).show();
        }
    }
}


实现:

package com.example.f405.broadcasttest;

import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.example.f405.broadcasttest.utils.MyLocalBroadcastReceiver;
import com.example.f405.broadcasttest.utils.MyselfBroadcaseReceiver;
import com.example.f405.broadcasttest.utils.NetworkBroadcastReceiver;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button btn_receiver;
    private Button btn_register;
    private Button btn_local;
    private NetworkBroadcastReceiver receiver;
    private Button btn_mySelf;
    private MyselfBroadcaseReceiver receiver_myself;
    private LocalBroadcastManager manager1;
    private MyLocalBroadcastReceiver receiver_local;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
    }

    private void initView() {

        btn_receiver = (Button) findViewById(R.id.btn_receiver);
        btn_register = (Button) findViewById(R.id.btn_register);
        btn_local = (Button) findViewById(R.id.btn_local);
        btn_mySelf = (Button) findViewById(R.id.btn_mySelf);

        btn_receiver.setOnClickListener(this);
        btn_register.setOnClickListener(this);
        btn_mySelf.setOnClickListener(this);
        btn_local.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){

            case R.id.btn_receiver:
                // 静态,开机自启,发送通知
                //  清单文件配置

                break;
            // 动态注册,不需要在清单文件注册
            case R.id.btn_register:
                receiver = new NetworkBroadcastReceiver();
                 registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
                break;

            case R.id.btn_mySelf:
                // 动态/静态自定义广播注册
                // 发送广播
                Intent intent = new Intent("myself");
                sendBroadcast(intent);
//                // 接收广播
//                receiver_myself = new MyselfBroadcaseReceiver();
//                registerReceiver(receiver_myself,new IntentFilter("myself"));
                break;

            case R.id.btn_local:

                // 本地广播,有问题??
                // 发送本地广播
                manager1 = LocalBroadcastManager.getInstance(this);
                Intent intent_local = new Intent("local");
                manager1.sendBroadcast(intent_local);
                // 注册本地广播
                receiver_local = new MyLocalBroadcastReceiver();
                manager1.registerReceiver(receiver,new IntentFilter("local"));
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
//        unregisterReceiver(receiver_myself);
        manager1.unregisterReceiver(receiver_local);

    }
}
 

清单文件:

<receiver android:name=".utils.BootBroadcastReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter >
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>
<receiver android:name=".utils.MyselfBroadcaseReceiver"
android:enabled="true"
android:exported="true">
<intent-filter >
    <action android:name="myself"/>
</intent-filter>
</receiver>


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值