をクリック:は、アクションの現在の通知を閉じ、私はアクションボタンとカスタム通知を持って
public class NotificationReceiver extends com.parse.ParsePushBroadcastReceiver {
@Override
public void onPushReceive(Context context, Intent intent) {
...
NotificationActivity notification = new NotificationActivity();
notification.createNotification(context, message, notificationId);
Log.i("tag", "Notification Received!");
}
public class NotificationActivity {
public int notificationId;
public void createNotification(Context context, String message, String studentId, String notificationId){
this.notificationId = Integer.parseInt(notificationId);
// manager
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
// notification
Notification.Builder mBuilder = new Notification.Builder(context);
mBuilder.setContentTitle("My Title");
mBuilder.setContentText(message);
mBuilder.setDefaults(Notification.DEFAULT_VIBRATE);
mBuilder.setAutoCancel(true);
mBuilder.setStyle(new Notification.BigTextStyle()
.bigText(message));
// cancel intent
Intent cancelIntent = new Intent(context, CancelNotification.class);
Bundle extras = new Bundle();
extras.putInt("notification_id", this.notificationId);
cancelIntent.putExtras(extras);
PendingIntent pendingCancelIntent =
PendingIntent.getBroadcast(context, 0, cancelIntent, PendingIntent.FLAG_UPDATE_CURRENT) ;
mBuilder.addAction(R.drawable.notification_close, "Fechar", pendingCancelIntent);
// notify
Notification notification = mBuilder.build();
notificationManager.notify(Integer.parseInt(notificationId), notification);
}
public static class CancelNotification extends BroadcastReceiver {
private int id;
@Override
public void onReceive(Context context, Intent intent) {
id = intent.getIntExtra("notification_id", 1);
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(id);
}
}
}
私は、「閉じる」アクションボタンをクリックした通知をキャンセルしたいです。
キャンセルの通知のIDが必要だと知っていますが、「閉じる」ボタンをクリックしてBroadCastReceiverを拡張するクラスCancelNotificationを作成したときのコードのやり方は、最終的な通知は、作成した最初の通知をクリックしても最後の通知を閉じています。
私は間違っている可能性がありますか?
Notification.FLAG_AUTO_CANCELを追加しようとしましたか?この旗はあなたが期待している行動をしていますか? – W0rmH0le
私はnotification.builderにあるすべてのもので質問を更新しました。今すぐ「閉じる」ボタンをクリックすると、何もしません。 – Ravers
これらのボタンをクリックすると、インテントがシステムにブロードキャストされます。おそらく、あなたは意図を処理する必要があります..このasnwerを試してみてください:http://stackoverflow.com/q/16869777/4860513 – W0rmH0le