我有一个创建通知的简单功能。按下通知后,用户将被重定向到给定的URL:
// makes an immediate notification
public void makeNotification(int icon, String title, String description,
String url, CharSequence tickerText) {
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
CharSequence contentTitle = title;
CharSequence contentText = description;
Intent notificationIntent = new Intent(Intent.ACTION_VIEW);
notificationIntent.setData(Uri.parse(url));
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
notification.setLatestEventInfo(this, contentTitle, contentText,
contentIntent);
// make each notification unique
mNM.notify(currentNotificationId, notification);
currentNotificationId++;
}
我想在按下通知时运行一个功能(跟踪通知点击次数)。我怎么做到这一点?
我可以创建一些中间活动(运行该函数,然后将用户转发到url),它将被传递到PendingIntent而不是Intent.ACTION_VIEW,但是有更简单的方法吗?
答案 0 :(得分:1)
不要使用PendingIntent.getActivity(),而是执行PendingIntent.getBroadcast()并将您的广播接收器与您的应用一起编写。现在,当用户触摸通知时,您的广播接收器将被激活(将url作为意图数据传递)。
在广播接收器的onRecieve()内部,执行您的逻辑并像现在一样启动浏览器活动。