如何在Notification中通过xml添加自定义操作

时间:2015-11-19 08:24:25

标签: android notifications android-notifications

我正在使用通知构建器通知设备上的通知。所有这一切都很好。我已经实现了未决的意图。当用户点击通知时,Whcih将用户带到活动。此外,当用户单击通知时,通知会将auto cancelable属性设置为true,从而消失。

让我告诉你我开始和通知通知的方式

 mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mBuilder = new NotificationCompat.Builder(DownloadService.this)
                            .setSmallIcon(R.drawable.download)
                            .setContentTitle("MyApps")
                            .setContentText("Downloading new tracks");
            mBuilder.setAutoCancel(true);


            Intent targetIntent = new Intent(DownloadService.this,TrackClass.class);
            PendingIntent contentIntent = PendingIntent.getActivity(DownloadService.this, 0, targetIntent, PendingIntent.FLAG_UPDATE_CURRENT);

            mBuilder.setContentIntent(contentIntent);

            mNotifyManager.notify(1, mBuilder.build());

所以这一切都正常工作我也在显示进度并更新通知中的进度。

我想要的是什么:  这就是我发布问题的原因,

  

“我想添加按钮以及通知,以便何时   用户点击它应关闭服务的按钮。我有   在通知上实施了点击操作但我不知道   如何在其中添加按钮“

请告诉我如何实现这一目标?

  

注意:请记住我正在制作和更新通知   服务。

我想现在我很清楚我想要什么,我的问题是什么。 那么请告诉我如何在此通知中添加按钮?

编辑1:

我希望如果我为通知实现自定义xml,那么其他属性,例如在通知时显示我的应用名称和通知时的一些小报告消息,他们仍然可以在通知方面显示,或者我必须明确地显示它们吗?

1 个答案:

答案 0 :(得分:0)

您必须创建自己的自定义视图 所有需要的信息http://developer.android.com/guide/topics/ui/notifiers/notifications.html#Updating

public void createNotification(View view) {
// Prepare intent which is triggered if the
// notification is selected
Intent intent = new Intent(this, NotificationReceiverActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), intent, 0);

// Build notification
// Actions are just fake
Notification noti = new Notification.Builder(this)
    .setContentTitle("New mail from " + "test@gmail.com")
    .setContentText("Subject").setSmallIcon(R.drawable.icon)
    .setContentIntent(pIntent)
    .addAction(R.drawable.icon, "Call", pIntent)
    .addAction(R.drawable.icon, "More", pIntent)
    .addAction(R.drawable.icon, "And more", pIntent).build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// hide the notification after its selected
noti.flags |= Notification.FLAG_AUTO_CANCEL;

notificationManager.notify(0, noti);

}