如何在 Android 中接收推送通知后打开一个活动?
此示例演示如何在 Android 中接收推送通知后打开一个活动
步骤 1 − 在 Android Studio 中新建一个项目,进入文件 ⇒ 新建项目,并填写所有必要信息来创建一个新项目。
步骤 2 − 将以下代码添加到 src/MyFirebaseMessagingService.java 中
package app.tutorialspoint.com.notifyme ; import android.app.NotificationChannel ; import android.app.NotificationManager ; import android.app.PendingIntent ; import android.content.Context ; import android.content.Intent ; import android.support.v4.app.NotificationCompat ; import com.google.firebase.messaging.FirebaseMessagingService ; import com.google.firebase.messaging.RemoteMessage ; public class MyFirebaseMessagingService extends FirebaseMessagingService { public static final String NOTIFICATION_CHANNEL_ID = "10001" ; private final static String default_notification_channel_id = "default" ; @Override public void onNewToken (String s) { super .onNewToken(s) ; } @Override public void onMessageReceived (RemoteMessage remoteMessage) { super .onMessageReceived(remoteMessage) ; Intent notificationIntent = new Intent(getApplicationContext() , MainActivity. class ) ; notificationIntent.putExtra( "NotificationMessage" , "I am from Notification" ) ; notificationIntent.addCategory(Intent. CATEGORY_LAUNCHER ) ; notificationIntent.setAction(Intent. ACTION_MAIN ) ; notificationIntent.setFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP | Intent. FLAG_ACTIVITY_SINGLE_TOP ) ; PendingIntent resultIntent = PendingIntent. getActivity (getApplicationContext() , 0 , notificationIntent , 0 ) ; NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext() , default_notification_channel_id ) .setSmallIcon(R.drawable. ic_launcher_foreground ) .setContentTitle( "Test" ) .setContentText( "Hello! This is my first push notification" ) .setContentIntent(resultIntent) ; NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context. NOTIFICATION_SERVICE ) ; if (android.os.Build.VERSION. SDK_INT >= android.os.Build.VERSION_CODES. O ) { int importance = NotificationManager. IMPORTANCE_HIGH ; NotificationChannel notificationChannel = new NotificationChannel( NOTIFICATION_CHANNEL_ID , "NOTIFICATION_CHANNEL_NAME" , importance) ; mBuilder.setChannelId( NOTIFICATION_CHANNEL_ID ) ; assert mNotificationManager != null; mNotificationManager.createNotificationChannel(notificationChannel) ; } assert mNotificationManager != null; mNotificationManager.notify(( int ) System. currentTimeMillis () , mBuilder.build()) ; } }
单击 此处 下载项目代码
广告