我创建了一个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 。
我应该如何确保只在点击按钮时执行该操作?
答案 0 :(得分:1)
只需使用intent action
代替extras
,如下所示:
Determine addAction click for Android notifications