(Android)Notification使用详解

Notification使用

Notification是Android中当应用程序在后台运行时,借助通知就可以在手机最上方显示一个通知的图标,下拉状态栏就可以看到详细内容。

基本概念

通知还是比较灵活的,可以在活动中创建,也可以在服务和广播中创建,但是通知通常是在程序在后台运行时调用。总体来说,创建和使用用法都是相同的。

详细步骤
  1. 创建NotificationManager来对通知进行管理,通过调用getSystemService(NOTIFICATION_SERVICE)来获得NotificationManager实例;
  2. 在Android8.0以后要对版本进行适配;
  3. 使用NotificationCompat设置标题 内容 图片等属性;
  4. 调用通知管理类的notify()方法弹出通知栏;
实例
public class SecondActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn_notification;
    //创建通知管理器
    private NotificationManager notificationManager;
    //通知渠道的id
    private String channelId="music";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        //获取通知管理器对象
        notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        //Android8.0以上的适配
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O) {
            //创建通知渠道实例(这三个参数是必须要有的)
            NotificationChannel channel = new NotificationChannel(channelId,"音乐消息",NotificationManager.IMPORTANCE_DEFAULT);
            //创建通知渠道的通知管理器
            NotificationManager manager =(NotificationManager)getSystemService(NotificationManager.class);
            //将实例交给管理器
            manager.createNotificationChannel(channel);
        }
        
        btn_notification =findViewById(R.id.btn_notification);
        onClickListener();
    }

    private void onClickListener() {
        btn_notification.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_notification:
                //创建notification对象,设置相应属性
                Notification notification = new NotificationCompat.Builder(this,channelId)
                        .setContentTitle("这是标题")
                        .setContentText("这是内容")
                        .setWhen(System.currentTimeMillis())
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.android))
                        .setSmallIcon(R.mipmap.apple)
                        .build();
                //调用管理器的notify方法
                notificationManager.notify(1,notification);

        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值