自定义通知中按钮的事件 OnClick

2023-12-11

我有一个带有按钮的自定义通知。要设置通知并使用按钮上的 OnClick 事件,我使用了以下代码:

//Notification and intent of the notification 
Notification notification = new Notification(R.drawable.stat_notify_missed_call,
            "Custom Notification", System.currentTimeMillis());

Intent mainIntent = new Intent(getBaseContext(), NotificationActivity.class);
PendingIntent pendingMainIntent = PendingIntent.getActivity(getBaseContext(),
    0, mainIntent , 0);
notification.contentIntent = pendingMainIntent;

//Remoteview and intent for my button
RemoteViews notificationView = new RemoteViews(getBaseContext().getPackageName(),
    R.layout.remote_view_layout);

Intent activityIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:190"));
PendingIntent pendingLaunchIntent = PendingIntent.getActivity(getBaseContext(), 0,
            activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notificationView.setOnClickPendingIntent(R.id.button1,
    pendingLaunchIntent);

notification.contentView = notificationView;

notificationManager.notify(CUSTOM_NOTIFICATION_ID, notification);

使用此代码,我有一个带有自定义布局的自定义通知...但我无法单击该按钮!每次我尝试单击该按钮时,我都会单击整个通知,因此脚本会启动“mainIntent”而不是“activityIntent”。

我在互联网上读到此代码不适用于所有终端。我已经在模拟器和 HTC Magic 上尝试过,但总是遇到同样的问题:我无法单击按钮!

我的代码是对的吗?有人可以帮助我吗?

Thanks,

Simone


我正在我的中编写代码MyActivity.java扩展的类android.app.Activity

它创建一个自定义通知,当用户单击按钮时,它会发送一个broadcast。 有一个广播接收器接收broadcast.

private void createDownloadNotification() {
        Intent closeButton = new Intent("Download_Cancelled");
        closeButton.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

        PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 0, closeButton, 0);

        RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.widget_update_notification);

        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.ic_launcher).setTicker("Ticker Text").setContent(notificationView);
        notificationView.setProgressBar(R.id.pb_progress, 100, 12, false);
        notificationView.setOnClickPendingIntent(R.id.btn_close, pendingSwitchIntent);

        notificationManager.notify(1, builder.build());

    }


public static class DownloadCancelReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {

            System.out.println("Received Cancelled Event");
        }
    }

注册接收者AndroidManifest.xml

<receiver android:name=".MainActivity$DownloadCancelReceiver" android:exported="false">
            <intent-filter>
                <action android:name="Download_Cancelled" />
            </intent-filter>
        </receiver>

由于它是内部类所以必须使用$ sign

小部件 xml 在这里

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/btn_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Close Me" />

    <ProgressBar
        android:id="@+id/pb_progress"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义通知中按钮的事件 OnClick 的相关文章

随机推荐

  • 在已经跟踪大量文件的现有存储库上应用 .gitignore

    我的存储库中有一个现有的 Visual Studio 项目 我最近在我的项目下添加了一个 gitignore 文件 我假设它告诉 Git 忽略该文件中列出的文件 我的问题是 所有这些文件都已经被跟踪 据我所知 在将规则添加到该文件以忽略它之
  • Java中可以使用Semaphore实现阻塞队列吗?

    我想知道是否可以使用Semaphore来实现阻塞队列 在下面的代码中 我使用一个信号量来保护关键部分 并使用另外两个信号量对象来跟踪空槽和已填充对象的数量 public class BlockingQueue private List qu
  • 使用 Spring Data 将结果集与实体和计数进行映射的首选方法

    通常存在显示所有类别以及这些类别的使用频率的业务问题 这个问题很容易通过查询来回答 SELECT c count FROM category assignment ca LEFT JOIN category c on ca c id c i
  • 如何在另一个组件中访问一个组件的变量 [Angular]

    我是角度新手 我今天正在尝试一件简单的事情 我已经浏览了很多答案 但无法正确实施它们 我想访问一些变量filter panel in filter bar 我的两个自定义组件 但两人都不是亲子关系 尽管它们位于同一目录中 但它们是独立的 在
  • jq 在输出中打印字符

    我要打印 输出标题内的分隔符 curl s http cd0a4a ethosdistro com json yes jq c rigs 0d6b27 50dc35 version driver miner gpus miner insta
  • UINavigationController“后退按钮”自定义文本?

    的 后退按钮 UINavigationController默认情况下显示堆栈中最后一个视图的标题 有没有办法在后退按钮中添加自定义文本 From 这个链接 self navigationItem backBarButtonItem UIBa
  • 如何让查询在分页结果时转移到后续页面

    我已经浏览了网站上所有的分页问题和答案 在所有冗长的代码和面向对象的解决方案中 这段代码是最短和最简单的
  • UML 中的轮廓图是什么?

    UML 中的轮廓图是什么 更具体地说 这张图的作用是什么 我们可以用它做什么 我们可以用它解决问题 或者我们可以用它简化更多解决方案 A 剖面图允许您通过定义您自己的构造型和一些其他类似元素来定义 UML 的扩展 这个想法是针对特定领域定制
  • OS X 上 Matplotlib 图形中的表情符号

    我有一个 Matplpoltlib 的奇异任务 我需要在标签内显示表情符号 我使用的是 OS X 因此系统范围内对表情符号有很好的支持 然而 Matplotlib 却无法解决问题 目前 表情符号显示为空框 我使用的是Python 3 所以U
  • 按钮切换引导程序刷新后保持状态

    我有三个切换按钮 我想在刷新页面后保持切换状态 我读了很多东西 但不知道如何在我的情况下使用它们 这是按钮和 div
  • 将数组分解成小数组

    我正在向一系列人员发送电子邮件 我有数组中的收件人列表 但该列表最多可达 500 人 我的邮件服务器一次发送的收件人数量有限制 50 个收件人 因此 如果列表 gt 50 我需要将其分成不同的邮件 将一个数组分成 50 个数组的最佳方法是什
  • 在最新版本(3.0.x)Resteasy 中,我们应该使用什么 ClientResponse 和 GenericType?

    我正在开发Resteasy 我将应用程序的 Maven 依赖项从2 2 x to 3 0 x突然我发现大多数 API 都被弃用了 因此 此迁移对我的代码和测试用例产生了影响 因为它只是说在我的整个代码中已弃用 我正在以我的测试用例为例 早期
  • 使用 Adb 输入时记录按键事件

    我使用命令adb shell su getevent lt dev input event5 gt Test txt记录触摸事件 当我触摸屏幕时它会起作用 即它会写入所有操作 按下键 移动键和向上键以及坐标 但是 当我使用命令时adb sh
  • 是否有用于解析数字(包括范围)的 Perl 模块?

    有没有一个模块可以为我做这个 样本输入 2 5 7 9 3 11 14 usr bin env perl use warnings use strict use 5 012 sub aw parse my in max chomp in m
  • Tomcat 使用 Java 8 SDK,但不会编译具有 Java 8 语言功能的 JSP。如何修复它?

    我想我正在考虑 Tomcat 配置问题与我当前的问题 我正在为 Tomcat 8 5 8 开发 Java Servlet 和 JSP 应用程序 并已开始使用 Java 8 语言功能 特别是方法引用和流 在我运行 jdk1 8 0 211 的
  • Firebase 简单登录的用户名(电子邮件/密码)

    我正在使用带有电子邮件 密码身份验证的 Firebase 简单登录 我在 id username 中存储一个名为 用户名 的变量 以便每个用户都有唯一的名称 但是 用户可以编辑该位置的值并输入现有的用户名 有没有办法禁止用户将用户名更改为现
  • 如何在模板中显示html?

    我有聚合物元素 example 默认情况下模板是不允许插入html的 该示例无法运行 因为不允许插入html 也许存在这样做的方法 做到这一点的一种方法是通过 Changed观察者并设置 innerHTML节点 div div labelC
  • Rails ActiveRecord:保存嵌套模型被回滚

    使用 Rails 5 gem rails gt 5 0 0 gt 5 0 0 1 我创建了我能想到的最简单的示例来演示该问题 父级 rb class Parent lt ApplicationRecord has many children
  • 循环通过 SimpleXMLElement 来访问属性

    我正在尝试处理使用 SimpleXML 检索的数据 但遇到了很大的困难 我在这里阅读了很多关于这个主题的帖子 它们看起来都像我正在做的事情 但我的不起作用 这是我所得到的
  • 自定义通知中按钮的事件 OnClick

    我有一个带有按钮的自定义通知 要设置通知并使用按钮上的 OnClick 事件 我使用了以下代码 Notification and intent of the notification Notification notification ne