我是靠谱客的博主 自觉云朵,最近开发中收集的这篇文章主要介绍Android开发Notification的使用详解一、源码二、详解三、效果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、源码

package com.example.learning01;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private static final String TAG ="MainActivity";

    private NotificationManager manager;
    private Notification notification;

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

        manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

        
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel("xupeng","测试",NotificationManager.IMPORTANCE_HIGH);

            manager.createNotificationChannel(channel);
        }
    
        Intent intent = new Intent(MainActivity.this,SecondActivity.class);
        PendingIntent pendingIntent;
        //根据版本确定PendingIntent参数
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
            pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent, PendingIntent.FLAG_IMMUTABLE);
        } else {
            pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent, PendingIntent.FLAG_ONE_SHOT);
        }



        notification = new NotificationCompat.Builder(this,"xupeng")
                .setContentTitle("通知")
                .setContentText("设备故障")
                .setSmallIcon(R.drawable.ic_baseline_child_care_24)
                .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.test))
                .setColor(Color.parseColor("#ff0000"))
                .setContentIntent(pendingIntent)
                .setAutoCancel(true)
                .build();



        findViewById(R.id.sendNotify).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                manager.notify(0,notification);
            }
        });
        findViewById(R.id.cancelNotify).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                manager.cancel(0);
            }
        });
    }

}

二、详解

根据SDK版本确定PendingIntent参数

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
     pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent, PendingIntent.FLAG_IMMUTABLE);
 } else {
     pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent, PendingIntent.FLAG_ONE_SHOT);
        }
notification = new NotificationCompat.Builder(this,"xupeng")
        .setContentTitle("通知")	//设置标题
        .setContentText("设备故障")//设置内容
        .setSmallIcon(R.drawable.ic_baseline_child_care_24)//设置小图标
        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.test))//设置大图标
        .setColor(Color.parseColor("#ff0000"))//设置颜色
        .setContentIntent(pendingIntent)//设置跳转界面
        .setAutoCancel(true)//自动取消
        .build();

开始通知

manager.notify(0,notification);

取消通知

manager.cancel(0);

三、效果

在这里插入图片描述

最后

以上就是自觉云朵为你收集整理的Android开发Notification的使用详解一、源码二、详解三、效果的全部内容,希望文章能够帮你解决Android开发Notification的使用详解一、源码二、详解三、效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部