单击通知时获取 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 事件 的相关文章

  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 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