如何在 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 = (NotificationManagergetSystemService(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()) ;
   }
}

單擊  此處  下載專案程式碼

更新時間:2019-07-30

3K+ 瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告