如何在按下通知时运行功能?

时间:2011-12-25 14:15:03

标签: android android-intent

我有一个创建通知的简单功能。按下通知后,用户将被重定向到给定的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,但是有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

不要使用PendingIntent.getActivity(),而是执行PendingIntent.getBroadcast()并将您的广播接收器与您的应用一起编写。现在,当用户触摸通知时,您的广播接收器将被激活(将url作为意图数据传递)。

在广播接收器的onRecieve()内部,执行您的逻辑并像现在一样启动浏览器活动。