如何在新通知构建器中侦听PendingIntent?

时间:2017-11-18 21:22:57

标签: android

我可以使用3个操作创建通知,但是我想在单击每个操作时调用方法。

  Intent intent = new Intent( this, MainActivity.class );
    PendingIntent pIntent = PendingIntent.getActivity( this, (int) System.currentTimeMillis(), intent, 0 );

    // Build notification
    // Actions are just fake
    Notification noti = new Notification.Builder( this )
            .setContentTitle( "New mail from " + "test@gmail.com" )
            .setContentText( "Subject" ).setSmallIcon( R.drawable.icon )
            .setContentIntent( pIntent )
            .addAction( R.drawable.icon, "Call", pIntent )
            .addAction( R.drawable.icon, "More", pIntent )
            .addAction( R.drawable.icon, "And more", pIntent ).build();
    NotificationManager notificationManager = (NotificationManager) getSystemService( NOTIFICATION_SERVICE );
    // hide the notification after its selected
    noti.flags |= Notification.FLAG_AUTO_CANCEL;

    notificationManager.notify( 0, noti );

我该怎么做?

1 个答案:

答案 0 :(得分:1)

步骤1:创建三个单独的Intent个对象,每个对象都有一个或多个对象,以区别于其他两个

步骤2:创建三个单独的PendingIntent对象,这将要求您使用与System.currentTimeMillis()不同的ID的解决方案(因为创建三个背靠背可能会导致相同的毫秒时间值)

步骤3:让每个动作都使用自己的三个PendingIntent对象中的一个

步骤4:在onCreate()和/或onNewIntent()中,检查Intent的其他内容并查看点击了哪三个操作,然后调用所需的方法