单击通知时获取 PendingIntent 事件

2023-12-03

我试图在单击通知时单击事件。

我拥有的

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String MyText = "Test";
Notification mNotification = new Notification(R.drawable.notification_template_icon_bg, MyText, System.currentTimeMillis() );
String MyNotificationTitle = "Test!";
String MyNotificationText  = "Test!";
Intent MyIntent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);
PendingIntent StartIntent = PendingIntent.getActivity(getApplicationContext(),0,MyIntent, PendingIntent.FLAG_CANCEL_CURRENT);
makeToast(StartIntent.getIntentSender().toString());
mNotification.setLatestEventInfo(getApplicationContext(), MyNotificationTitle, MyNotificationText, StartIntent);
notificationManager.notify( NOTIFY_ME_ID, mNotification);

这工作得很好,但我不知道该怎么做,就是点击该通知。

我尝试过的

我尝试做一些事情onUserInteraction()如果我没记错的话,当 Intent 开始一项新活动时似乎会被解雇,但没有起作用。

我也尝试过onActivityResult()但我不知道如何获得当前的意图。

我尝试的最后一件事是做类似的事情this

BroadcastReceiver call_method = new BroadcastReceiver() {
   @Override
   public void onReceive(Context context, Intent intent) {
     String action_name = intent.getAction();
            if (action_name.equals("MyIntent")) {
                //STUFF HERE
            }
   };
};
registerReceiver(call_method, new IntentFilter("MyIntent"));

也可以代替 putMyIntent那就是Intent,我试图把PendingIntent但不起作用。

顺便说一句,当我尝试创建一个时,我的代码中会出现这个Notification

enter image description here

当我尝试打电话时setLatestEventInfo()

enter image description here

但我不知道这是否是问题的原因,或者是否会在将来带来问题。

我做错了什么?

EDIT

我刚刚创建了一个示例,该示例演示了我的应用程序目前的功能。很简单,当我按 aButton它会弹出一个Notification。在我真正的应用程序上,我不必单击Button但都是一样的。我想要的是获得点击事件Notification并利用该事件进行制作。我所做的就是创建另一个Activity我把想要的东西放在那里onCreate()在我想做的事情结束时我打电话给Finish()完成该操作的方法Activity,但我不知道这是否是最好的方法。我想要另一种方法来做到这一点我不想使用两种Activities...

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button btnoti;
private static final int NOTIFY_ME_ID=1337;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnoti = (Button)findViewById(R.id.btnoti);
    btnoti.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@Override
public void onClick(View v) {
    if (v.getId() == R.id.btnoti){
        addNotification();
    }
}

private void addNotification() {

    //We get a reference to the NotificationManager
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    String MyText = "Test";
    Notification mNotification = new Notification(R.mipmap.ic_launcher, MyText, System.currentTimeMillis() );
    String MyNotificationTitle = "Test!";
    String MyNotificationText  = "Test!";
    Intent MyIntent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);

    PendingIntent StartIntent = PendingIntent.getActivity(getApplicationContext(),0,MyIntent, PendingIntent.FLAG_CANCEL_CURRENT);

    mNotification.setLatestEventInfo(getApplicationContext(), MyNotificationTitle, MyNotificationText, StartIntent);
    notificationManager.notify( NOTIFY_ME_ID, mNotification);
}

编辑 2(三个快速问题)以继续我的代码...

我希望你不介意向我解决这三个快速问题......

  1. 从现在开始我已经使用了Thread.sleep()例如每 30 秒执行一项任务while(true)但我不知道这是否是最好的方法,因为我想让用户选择时间,例如时间可以是 5 分钟或 5 小时...而且我不知道最好的方法是什么,我已经读到有一种方法或称为AlarmManager重复任务的正确方法是?有没有任何源示例来了解如何使用它Alarm Manager?
  2. 我必须知道用户何时创建“finish()“ 来自Intent(ACTION_PICK_WIFI_NETWORK) 我的意思是当我关闭该应用程序后返回我的应用程序时Intent我用过onResume()但我不知道这是否是正确的工作方式,不是吗? (如果你不明白我想说的很简单,我想知道知道用户何时关闭 Wifi 网络选择器的事件的名称)
  3. 这是一种让你的应用程序在你转到另一个应用程序时仍然活着的方法吗?我的意思是,你可以转到另一个应用程序,而你的应用程序仍然可以在没有用户交互的情况下工作?因为从现在开始,如果我转到另一个应用程序,我的应用程序就像睡眠或其他什么一样,并且不会继续运行...... 我读过一些东西来调用任务Service我认为一切顺利,即使该应用程序不在最近的应用程序中,它仍然可以运行......

谢谢,如果您不能回答我,我可以为每个问题发一个帖子,但我认为这些问题可以很快得到回答。


通常当我们开始一个Activity从推送通知中,Intent已在开始时恢复Activity's onCreate() method.

就您而言,您正在启动系统定义的Activity使用WifiManager.ACTION_PICK_WIFI_NETWORK行动。我们无权访问onCreate()这个的Activity,所以似乎不可能恢复Intent从中。

因为你已经创建了一个PendingIntent using getActivity(),不可能拦截Intent用一个BroadcastReceiver. A BroadcastReceiver是由一个触发PendingIntent创建使用getBroadcast().

另外,使用PendingIntent代替一个Intent(或相反亦然)。这两个实际上并不是同一个对象type。因此它们不可互换。如果你观察他们的命名空间分类,那就是android.app.PendingIntent versus android.content.Intent.

我知道这不是对你的问题的“真正”答案,但这是我目前所拥有的全部。如果我能想到解决方案,我会更新这个答案......最好。

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

单击通知时获取 PendingIntent 事件 的相关文章

  • 造型 Sherlock ActionMode 背景

    似乎无法设置 ActionMode 背景的样式 我已经覆盖了操作栏背景 但设置 ActionMode 背景似乎不起作用
  • 恐慌:缺少“x86”CPUS 的模拟器引擎程序

    我正在尝试运行我的第一个 Android Hello World 程序 但在这样做时 Android studio 给出了一个错误 以下是所有详细信息 IDE Android Studio 操作系统 OSX 版本 10 9 5 命令 Use
  • onCheckedChanged 自动调用

    我在回收器视图中有一个开关 从数据库检索数据后 数据显示在回收器视图中 当回收器视图打开时 我读取数据库 如果数据库中的字段为 Y 我启用开关 否则禁用开关 现在的问题是 onCheckedchanged 监听器也被调用 我希望仅当用户手动
  • 如何获取拍摄照片的uri?

    我想实现什么目标 我想获取捕获图像的 URI 并将其保存在 Firebase 上 我尝试了什么 首先我需要打开相机 下面我是如何做到的 Intent cameraIntent new Intent android provider Medi
  • 如何更改选项卡之间的 FloatingActionButton?

    我正在尝试实施浮动操作按钮 from 谷歌设计支持库进入三个选项卡中的两个 并根据材质设计指南 FloatingActionButton https www google com design spec components buttons
  • 如何在Android中正确使用AsyncTask [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不想传递任何参数doInBackgroundAsyncTask 的方法 那么代码应该是什么样的呢 import android ap
  • 颜色资源 ID 返回错误值

    我试图在 onCreate 期间以编程方式从颜色资源设置文本颜色 但得到了一些奇怪的结果 我在 res colors xml 中定义了一个颜色资源
  • 谷歌地图返回空指针异常

    当我尝试在片段上显示地图时 它返回空指针异常 我已将所有内容添加到清单中的每个权限中 我正在附加片段文件 XML 文件和日志目录 Chatffragment java public class ChatFragment extends Fr
  • 注册到 gcm 时获取空设备 ID

    GCMRegistrar checkDevice this GCMRegistrar unregister this GCMRegistrar checkManifest this if GCMRegistrar isRegistered
  • Android 上默认安装哪些字体? [复制]

    这个问题在这里已经有答案了 Android 设备上默认安装哪些字体 我知道关于机器人字体 http www droidfonts com and Roboto https developer android com design style
  • 如何在Android中设置音频均衡器

    我正在制作一个媒体播放器 其中需要使用 搜索栏 将均衡器效果设置为 低音 可怕 摇滚 流行 中 我得到了一个链接 其中使用了一些 NDK 库来执行此操作 是否有任何 Java 库可以执行此操作 请解释执行此操作的逻辑是什么 Override
  • 如何在没有 EasyTracker 的情况下停止 Android 版 Google 移动分析 v2 中的会话

    我已经阅读了 GoogleAnalytics v2 网站上的文档 我基本上阅读了来自https developers google com analytics devguides https developers google com an
  • Firebase API 密钥限制不适用于 Android 应用程序包名称和 SHA1 指纹

    我们正在使用 Google Firebase 获取我们应用程序的 CrashLytics 数据 以及通过google services json文件被提出作为一个安全问题 因为应用程序 apk 文件可以被逆向工程来获取该文件 然后攻击者可以
  • 当我从片段调用它时,我的接口类不起作用

    我正在尝试在我的项目中实现此代码 但不起作用RecyclerView 如何捕获ImageView上的onClick https stackoverflow com questions 33264042 recyclerview how to
  • Pre-Lollipop 设备上 ImageButton 的高度效果

    我正在尝试为 ImageButton 应用海拔效果 它在我运行 Android 5 0 的 Nexus 平板电脑上运行良好 但在 Lollipop 之前的设备上无法运行 尝试了 ViewCompat setElevation view va
  • 在 SQLite 中加密数据

    如何加密我的数据 就我研究的解决方案而言 有两种方法 使用android提供的算法加密数据 我使用android提供的 Cipher 来加密我的数据 但我在检索大量记录的数据时遇到问题 导致应用程序的性能显着降低 我对整个数据库进行了编码
  • 在 Back 上按遍历最后两个选项卡在 BottomNavigationView 中无法正常工作?

    单击后退按钮后 导航到上一个打开的选项卡 您只需遍历最后打开的两个选项卡即可退出应用程序 如何实现 我只想遍历我打开的所有选项卡 然后应用程序应该退出 这是布局
  • 程序类型已存在:android.support.v4.app.BackStackRecord

    我升级了Android Studio 在最新版本中发现了很多问题 尽管存在很多类似的问题 但我检查了所有答案 但没有一个对我有用 这是我在编译代码时遇到的错误 已存在的程序类型 android support v4 app BackStac
  • 如何在声音输入时触发振动?

    我正在尝试创建一个 Android 应用程序 在其中过滤蜂鸣声的一个特定频率并使手机振动 我正在从移动设备的 MIC 获取输入并使用 MediaRecorder 类 通过使用该类 我可以录制 保存和播放输入 现在我需要我的手机在发出蜂鸣声
  • Android:永久保存文件(即使在清除数据/卸载后)

    我想知道是否有一种方法可以永久存储少量数据 永久我的意思是即使用户清除应用程序数据 卸载应用程序 我也希望数据保留下来 我知道当用户清除应用程序数据 卸载应用程序时 共享首选项和数据库将被删除 我也知道我可以在 SD 卡上保存内容 但是如果

随机推荐

  • JarFile 从 *.jar 或输入流内部到文件?

    我有一个罐子或战争 我正在以编程方式读取这个罐子 当我在这个罐子里找到罐子时 我想以编程方式再次读取它 但 JarFile 仅提供 getInputStream 我无法将其传递给 JarFile File file 构造函数 如何从jar中
  • Instagram“你不能喜欢这个媒体”400状态代码

    我知道 Instagram API 几个小时前关闭了 但现在似乎又恢复了 问题是 当我们向 Instagram 发布数据说喜欢某张特定照片时 我们会收到以下错误 meta error type APINotAllowedError code
  • 窗口大小调整时获取文档的大小

    当我调整窗口大小时 我可以找到窗口的大小 就像这样 现在我想在调整窗口大小时获取文档大小 每次调整窗口大小时如何获取大小 窗口 width 返回浏览器视口的宽度 文档 width 返回 HTML 文档的宽度
  • 嵌入式 Google 文档 PDF 查看器显示登录页面而不是 PDF

    我有一个网页 在 iFrame 中嵌入了 Google 文档查看器 其中 URL encoded URL 是实际编码的 URL 对于我的许多 大多数用户来说 Google PDF 文档查看器会出现并显示引用的 PDF 但我的一些用户却看到带
  • 如何在Python中读取大文件的特定部分

    给定一个大文件 数百 MB 我如何使用 Python 快速读取文件内特定开始索引和结束索引之间的内容 本质上 我正在寻找一种更有效的方法 open filename read start index end index You can se
  • webview 不显示 javascript windows.open()

    我有一个WebView我在其中显示我无法控制的网页内容 内容显示正常 但有生成弹出窗口的链接 执行此操作的 javascript 函数如下所示 function getEntry id var win window open Booking
  • 如何获取使用特定共享工作簿的用户列表?

    我正在使用共享工作簿 有一个代码可以撤消 WB 共享 更新工作表中的数据 然后再次共享 WB 如果有用户连接到该 WB 他们将失去在 WB 上保存的能力 Excel 会要求他们以不同的名称保存 WB 我的问题是如何获取当前正在使用 WB 的
  • REST WCF 的 WSDL

    我通过在 web config 中指定 WebGET 和 WebHttpBinding 在 C 中创建了 REST WCF 该服务通过 IE 运行良好 我的 wsdl 开始如下 它在 wsdl 中有肥皂 由于这是 REST soap 不应该
  • 输入键保存文本区域值

    你好 我有 ckeditor 和一个用于使用 ajax 保存 ckeditor 文本的按钮
  • 生成与现有一维数组具有预先指定相关性的 NumPy 一维数组?

    我有一个未生成的一维 NumPy 数组 现在 我们将使用生成的一个 import numpy as np arr1 np random uniform 0 100 1 000 我需要一个关联的数组0 3用它 arr2 print np co
  • 本地控制器与核心控制器

    我在本地管理 app code local Mage Adminhtml Block Catalog Product Grid php 中添加新的列和操作 但是效果很好 本地控制器 app code local Mage Adminhtml
  • 如何向Android中同一应用程序的注册用户发送通知

    每当我作为管理员添加某些内容时 我想通知已下载应用程序的用户 每个下载该应用程序的用户都会注册 我有关于用户的所有信息 我想在向我的应用程序添加某些内容时发出通知 通常我添加的数据将存储在数据库中 请告诉我如何实现这一点 你应该使用GCM用
  • PhotoKit 中的删除:可以跳过“最近删除”吗?

    从 iOS8 开始 当您删除照片时 它会进入一个名为 最近删除 的类似垃圾箱的文件夹中 当您通过 Photos app 或通过 PhotoKit API 使用PHAssetChangeRequest deleteAssets 在 Photo
  • Excel VBA If and then 无法正确评估

    我有下面的代码 在我看来 IF 语句有问题 工作簿中有两个选项卡 ALLDATA 选项卡和 COMP 选项卡 该宏应该按日期 ALLDATA 选项卡的 A 列 金额 COMP 选项卡上的单独列 以第 1 行开头 填充收款人列表 ALLDAT
  • 我的 .map 方法在功能上无法正常工作

    我不知道为什么 map 方法被完全忽略 即使在删除条件后 它也不会将小部件添加到我的列表中 似乎 groupsToRename map 根本不存在 List
  • 详细说明:方法重载是静态/编译时绑定,但不是多态性。将静态绑定与多态性相关联是否正确?

    在提问之前 我先阐述一下我的理解和看法 除非有向上转换 否则仅通过重写无法实现多态性 由于它只能在运行时看到 人们可能将其命名为运行时多态性 我不反对打电话多态性 as 运行时多态性 我有异议打电话方法重载 as 编译时多态性 or 多态性
  • 简单的 MVC 路线遇到问题

    某些路线遇到一些问题 我并不完全理解 MVC 路由系统 所以请耐心等待 我有两个控制器 产品和主页 还有更多控制器 我希望无需在 url 中键入 Home 即可访问 Home 控制器中的视图 本质上 我想将 www example com
  • 如何在VSCode中添加自定义代码片段?

    是否可以在 Visual Studio Code 中添加自定义代码片段 如果是这样 怎么办 VSCode是基于Atom的 所以应该是可以的 Hit gt shift command p and type snippets Select 首选
  • 如何在 Unity 中全局创建类的别名?

    现在 我正在使用 字符串 来枚举角色上的设备槽列表 我还使用 string 来枚举该项目可以装备的类类型 这使得我获取 删除 生成等项目的所有方法都涉及两个字符串参数 即设备槽和类类型 我真正想要的是使用 2 个类 这样我就有了 slot
  • 单击通知时获取 PendingIntent 事件

    我试图在单击通知时单击事件 我拥有的 NotificationManager notificationManager NotificationManager getSystemService Context NOTIFICATION SER