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

标签 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++;
}

每当按下通知时,我想运行一个函数(跟踪通知点击次数)。我将如何做到这一点?

我可以创建一些中间 Activity (运行函数然后将用户转发到 url),这些 Activity 被传递到 PendingIntent 而不是 Intent.ACTION_VIEW,但是有没有更简单的方法?

最佳答案

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

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

关于android - 按下通知时如何运行功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629974/

相关文章:

android - 有没有办法让我的 Android 应用程序在安装时运行一些自定义代码?

android - 是否有任何类被认为是 Android 中的上下文,或者是否有一些特定的事情必须完成?

android - 如何创建可以与所有客户端一起使用的 android 共享 Intent ?

android - 使用 kotlin 在 android studio 中创建按钮

java - 将现有应用程序转换为库

android - 如何更改在抽屉导航内的回收 View 中单击的项目的文本颜色和图像

Android:从 View 中触发 Intent

Android - PendingIntent.FLAG_CANCEL_CURRENT - 它真的取消了 alarmManager 之前未决的 Intent 吗?

java - 当我按下后退按钮时,我的 Activity 重新启动

java - 调试Android Intent 问题(无特定接收者)