我想在android中为我的通知添加一个按钮。
我使用addAction
方法来添加一个意图,该意图打开主要活动(与点击整个通知相同),但附加一个包含数据的包。
这是我到目前为止所做的:
notificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);
//regular intent to view main activity
PendingIntent contentIntent = PendingIntent.getActivity(this,Constants.MAIN_ACTIVITY,
new Intent(this, MainActivity.class), 0);
//intent for viewing transaction dialog, within main activity using PURCHASE_DIALOG request code
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(Constants.LIST, (java.util.ArrayList<? extends android.os.Parcelable>) list);
PendingIntent purchaseIntent = PendingIntent.getActivity(
this, Constants.PURCHASE_DIALOG,
new Intent(this, MainActivity.class), 0, bundle);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(Constants.NOTIFICATION_TOPIC)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(watchResponse.toString()))
.setAutoCancel(true)
.addAction(R.drawable.ic_launcher, "Buy", purchaseIntent)
.setContentText(message);
mBuilder.setContentIntent(contentIntent);
notificationManager.notify(NOTIFICATION_ID, mBuilder.build());
我只是希望点击额外操作后我的onResume
课程中的MainActivity
会被调用,然后我就可以通过getIntent()
获得捆绑包了点击它时没有任何反应。单击该按钮,但活动仍然打开,我的应用程序活动无法启动。
答案 0 :(得分:0)
我有一个非常相似的问题,但是一个非常不同的解决方案。如果您在manifest.xml文件中声明了<service android:enabled="false"></service>
,则也不会触发挂起的意图。
从android:enabled="false"
替换为android:enabled="true"
这可能不是问题的直接问题。但是如果你使用默认模板在android studio中创建服务,它会自动将这些属性添加到服务中。
如果这不起作用,您可以在此处找到类似的问题: Android Notification Action is not fired (PendingIntent)