【问题标题】:Notification Button click - method call通知按钮点击 - 方法调用
【发布时间】:2014-07-02 18:04:14
【问题描述】:

我创建了一个Notification 以显示在状态栏上。

在通知中我添加了一个Button,它执行一些操作。

要调用特定方法,在按钮单击时我使用建议的方法here

代码:

// Building notification - this code is present inside a Service
NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

Intent activityIntent = new Intent(this, HomeActivity.class);
activityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, activityIntent, 0);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this).setContentTitle(fileName.toString()).setContentText("Subject")
        .setSmallIcon(R.drawable.ic_app_icon).setContentIntent(pendingIntent).setAutoCancel(false);


// code to add button
Intent openListIntent = new Intent();
openListIntent.putExtra("list_intent", true);
PendingIntent listPendingIntent = PendingIntent.getActivity(this, 0, openListIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notificationBuilder.addAction(R.drawable.ic_open_list, "List", listPendingIntent);

Notification notification = notificationBuilder.build();

// Code in HomeActivity.java to perform operation on button click

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    boolean openListFlag = intent.getBooleanExtra("list_intent", false);
    if (openListFlag) {
        // code to perform operation
    }
}

我的方法是,当单击通知中的按钮时,我传递了一个 Extra 布尔值,该值设置为 true

但即使只点击通知(而不是按钮),仍然会调用 onNewIntent() 中的操作。 也就是说,openListFlag 的值始终设置为 true

我应该如何确保该操作仅在按钮单击时执行?

【问题讨论】:

  • 看起来您传递的意图的键 (AppConstants."list_intent") 与您在 HomeActivity 中访问的不同。它们是一样的吗?
  • ic_open_list 图标的大小是多少?这有什么问题吗?尝试点击通知的不同部分

标签: android android-notifications android-pendingintent


【解决方案1】:

只需使用intent action 而不是extras,如下所示: Determine addAction click for Android notifications

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 2017-10-23
    • 2019-02-28
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多