Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android notifications 在以前的通知中禁用了操作按钮_Android Notifications - Fatal编程技术网

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();
        }


}