android通知
实现两个按钮,点击发送通知既可以收到一个通知,点击取消可以取消在通知栏的通知
(1)创建一个NotificationManager,通知管理器类,
(2)创建一个Notification对象(就是通知,通知的所有属性和内容都在这个属性中)
(3)如果版本大于安卓8.0则创建NotificationChannel对象
(4)使用manager对象的createNotificationChannel()方法创建一个通知
(5)使用manager对象的.notify方法发送通知
public class MainActivity extends AppCompatActivity {
/*通知
* (1)创建一个NotificationManager,通知管理器类,
* (2)创建一个Notification对象(就是通知,通知的所有属性和内容都在这个属性中)
* (3)如果版本大于安卓8.0则创建NotificationChannel对象
* (4)使用manager对象的createNotificationChannel()方法创建一个通知
* (5)使用manager对象的.notify方法
* */
private Button button;
private Button button1;
private NotificationManager manager;
private Notification notification;
private Intent intent;
private PendingIntent pendingIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button1 = (Button) findViewById(R.id.button1);
intent = new Intent(MainActivity.this,Main2Activity.class);
pendingIntent = PendingIntent.getActivity(this,0,intent,0);
//第一步:拿到NotificationManager对象
manager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
//创建Notification对象,
// 第一个参数是context,第二个参数是一个channelId通知渠道id,
notification = new NotificationCompat.Builder(MainActivity.this, "YonC")
//通知的标题
.setContentTitle("阿离的通知")
//通知内容
.setContentText("你有家吗?有温柔的女孩子在家里等你吗?")
//小图标,小图标不能有R G B三原色
.setSmallIcon(R.drawable.ic_stars_black_24dp)
//小图标的颜色,int型的颜色,使用Color.parseColor()
.setColor(Color.parseColor("#FFff0fff"))
//大图标,其中格式是Bitmap类型这里要转换
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.li))
//点击通知后的跳转意图
.setContentIntent(pendingIntent)
//点击通知后自动清理通知
.setAutoCancel(true)
.build();
// 在安卓8.0以上需要使用NotificationChannel(通知渠道)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//三个参数,第一个就是notification对象对应的id
//第二个是name,是用户收到通知时会看到的
//第三个是重要性优先级
NotificationChannel channel = new NotificationChannel("YonC", "YonC",
NotificationManager.IMPORTANCE_HIGH);
manager.createNotificationChannel(channel);
}
//显示通知
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
manager.notify(1,notification);
}
});
//取消通知
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
manager.cancel(1);
}
});
}
}