概述
一、源码
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的使用详解一、源码二、详解三、效果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复