Android notifications 在以前的通知中禁用了操作按钮
我在Android notifications 在以前的通知中禁用了操作按钮,android-notifications,Android Notifications,我在notification1)编辑2)删除中放置了两个操作按钮。每次单击时,我都会显示新的通知。删除按钮可在上次通知中单击,但在以前的通知中不可单击。例如,我已经显示了4个通知,删除按钮在上一个通知中可单击,但在前三个通知中不可单击 我想通过单击操作按钮(删除)来取消正在进行的通知 如何解决这个问题? 通知活动 public class NotificationActivity extends Activity { public static final String NOTIFI
notification
1)编辑2)删除中放置了两个操作按钮。每次单击时,我都会显示新的通知。删除按钮可在上次通知中单击,但在以前的通知中不可单击。例如,我已经显示了4个通知,删除按钮在上一个通知中可单击,但在前三个通知中不可单击
我想通过单击操作按钮(删除)来取消正在进行的通知
如何解决这个问题?
通知活动
public class NotificationActivity extends Activity {
public static final String NOTIFICATION_ID = "NOTIFICATION_ID";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.cancel(getIntent().getIntExtra(NOTIFICATION_ID, -1));
finish(); // since finish() is called in onCreate(), onDestroy() will be called immediately
}
public static PendingIntent getDismissIntent(int notificationId, Context context) {
Intent intent = new Intent(context, NotificationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.putExtra(NOTIFICATION_ID, notificationId);
PendingIntent dismissIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
return dismissIntent;
}
}
我对您的方法进行了如下编辑:
private void showStickyNotification(String title) {
NOTIFICATION_ID = (int) System.currentTimeMillis();
//necessary to display on android Oreo and above
createNotificationChannel();
//Tap to open app
Intent tapIntent = new Intent(this, MainActivity.class);
tapIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent tapPenIntent = PendingIntent.getActivity(this, 0, tapIntent, PendingIntent.FLAG_ONE_SHOT);
//edit button
Intent editIntent = new Intent(getApplicationContext(), MainActivity.class);
editIntent.putExtra("NotificationMessage", title);
editIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent editPenIntent = PendingIntent.getActivity(getApplicationContext(), NOTIFICATION_ID, editIntent, PendingIntent.FLAG_UPDATE_CURRENT);
//delete button
Intent resultIntent = new Intent(this, MainActivity.class);
resultIntent.putExtra("notificationID", NOTIFICATION_ID);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(num++, PendingIntent.FLAG_UPDATE_CURRENT);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID);
builder.setSmallIcon(R.drawable.ic_notification_black);
builder.setContentTitle(title.split("\n")[0]);
builder.setContentText(title);
builder.setPriority(NotificationCompat.PRIORITY_MAX);
builder.setLargeIcon(bitmap);
builder.setStyle(new NotificationCompat.BigTextStyle().bigText(title));
builder.setNumber(num++);
builder.setContentIntent(tapPenIntent);
builder.setOngoing(true);
builder.setAutoCancel(true);
//Add action buttons to notification
builder.addAction(R.drawable.ic_edit_black, "Edit", editPenIntent);
builder.addAction(R.drawable.ic_delete_black, "Delete", resultPendingIntent);
notificationManagerCompat = NotificationManagerCompat.from(this);
//show notification
notificationManagerCompat.notify(NOTIFICATION_ID, builder.build());
Toast.makeText(this, "Successfully saved in your notification..", Toast.LENGTH_LONG).show();
}
再创造
int num;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
NotificationManager Nmang = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
Nmang.cancel(getIntent().getExtras().getInt("notificationID"));
} catch (Exception e) {
e.printStackTrace();
}
}
添加您的通知活动code@AtifPervaiz我已经添加了代码我已经展示了我的努力,有人来帮我吗?
int num;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
NotificationManager Nmang = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
Nmang.cancel(getIntent().getExtras().getInt("notificationID"));
} catch (Exception e) {
e.printStackTrace();
}
}