package com.example.notificationtest;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.bt);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//1.创建一个NotificationManager
NotificationManager manager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//2.创建NotificationChannel
NotificationChannel channel = new NotificationChannel
("1", "My channel", NotificationManager.IMPORTANCE_DEFAULT);
//3.用manager创建一个NotificationChannel
manager.createNotificationChannel(channel);
//4.创建Notification并设置属性
Notification notification = new NotificationCompat.Builder(MainActivity.this, "1")
.setContentTitle("My first title")
.setContentText("This is my content!!!!")
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.fruit4)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.fruit4))
.build();
//用manager启动Notification
manager.notify(1, notification);
}
});
}
}
在给通知创建PendingIntent时,务必在第四个参数使用PendingIntent.FLAG_IMMUTABLE