学习
实践
活动
工具
TVP
写文章

Android 点击通知消息打开activity,并判断app是否运行

android通知消息点击事件如果是打开一个activity时,我们要考虑两种情况: 应用正在前台运行。 应用已退出。 对于第二种情况,我参照了很多app的做法,现总结为以下两种: 点击通知消息打开activity按下返回键后判断app是否启动,如果没有启动就要启动app; 点击通知消息判断app是否正在前台运行, 否则先启动app打开activity,参数通过Intent一层一层往下传递。 activity是否在任务栈里面,app启动后会有一个首页,该首页只有当app退出时才会被销毁,因此可用判断MainActivity是否在任务栈里面来判断应用是否已经启动。 ........... } 在onDestroy方法中判断该应用是否正在前台运行,但是这里只能用MainActivity是否存在任务栈里面判断,因为当你点击通知消息跳转到某个activity的时候,任务栈里该

70410

Android开发实现判断通知是否打开及前往设置页面的方法

本文实例讲述了Android开发实现判断通知是否打开及前往设置页面的方法。 分享给大家供大家参考,具体如下: 项目中用到日程提醒功能,如果应用的通知栏没有打开,则需要提示用户前去打开通知栏,判断通知是否打开代码如下: private boolean isNotificationEnabled } catch (IllegalAccessException e) { e.printStackTrace(); } return false; } 返回值为true时,通知打开 ,false未打开。 的通知栏/不勾选显示通知,则Toast无法显示 更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android

57520
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android通知监听服务之NotificationListenerService使用篇

    前言 本篇我们将介绍如何利用NotificationListenerService实现类似智能手表通知同步、微信自动抢红包等功能。 实现这些功能的原理其实就是监听系统的通知服务,接下来我们来看该如何实现。 在onNotificationPosted方法中有一个StatusBarNotification实例,通过这个实例我们可以获取通知消息的包名、内容等。代码如下所示。 <uses-permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"/> 启动服务前判断是否开启了监听通知的权限 所以我们可以在收到消息时,通过监听微信包名、以及消息内容来判断是否收到了微信红包来处理具体的操作。(不处理,别人故意发同样的文字)。

    7220

    Android消息推送:手把手教你集成小米推送

    App的进程 //从而判断App是否打开 private boolean shouldInit() { //通过ActivityManager我们可以获得系统里正在运行的activities App是否已开启 - 通过判断系统里的进程 通过静态方法 public static void registerPush(Context context, String appID, String appKey 通过参数message从而获得通知消息,具体请看官方SDK文档 //2. , APP_KEY); } } //通过判断手机里的所有进程是否有这个App的进程 //从而判断App是否打开 private boolean shouldInit 通过参数message从而获得通知消息,具体请看官方SDK文档 //2.

    1.4K20

    IMSDK华为离线推送快速调试

    本篇主要介绍:在tuikit上如何快速跑通华为离线推送,实现如下功能点,顺便记录一下,在集成过程中,容易踩到的坑点 1、退后台/杀进程,接收离线消息 2、离线消息透传ext字段 3、通知栏点击,打开应用内界面 首先集成:终端app集成华为pushsdk、集成imsdk,调用pushsdk申请token,调用imsdk上报token到im服务端 1、消息到了IM服务端,IM服务端会判断接收方userid的在线状态 】的操作为【打开应用】或【打开应用内指定界面】,当点击通知栏的消息时,客户端可以在相应的 Activity 中获取自定义内容,可以参考 OfflineMessageDispatcher.java 类的 </manifest> 七、app角标刷新 手机系统控制角标 厂商推送离线消息到手机,手机系统会触发刷新通知栏、app角标,在手机系统设置里面打开/关闭角标功能,就可以了。 当点击通知消息,唤起应用,才能在app通过代码控制角标,主要是需要处理消除角标,tuikit demo中有监听消息已读上报,已读成功了就调用华为api,消除app角标,代码如下: public class

    65390

    检测Android应用的启动和关闭

    原文链接:Determine when App is Opened or Closed 译文出自:开发者前线 入门指南 应用的activity是否显示在界面是决定应用是打开还是关闭的核心因素。 为了实现它,当我们注意到状态发 * 生改变,一个延迟的消息会被发出。在这个消息被接收之前,我们不会注意前台应用的状态是否 * 发生了改变。 论应用如何启动 到目前为止,我们知道了如何检测应用是什么时候被打开或者关闭的,但是我们还不知道应用是如何打开的。 在这段代码中,我在application类中添加了一个枚举类型变量用来记录应用是如何打开的。这个建立在上一个例子的基础之上,所以我们打印一下日志,来看看应用是什么时候被打开的和如何打开的。 所以下一步就是在用户通过链接或通知打开应用的时候设置启动方式。如果不是上述两个方式,则说明用户是直接打开应用的。

    1.8K30

    Android推送的群魔乱舞

    image 对于手机端APP来说,推送分APP在线推送还是离线推送,其实就是APP是否存活,APP存活情况下,有多种选择,如果APP通过Socket跟自家服务器建立了链接,则可以由自家服务器直接推送到APP 华为消息回执模式 与两者对应也有两种消息的概念:透传消息通知消息: 透传消息APP存活情况下,由推送服务直接把消息发送给APP应用,由APP自己选择如何处理,注意透传的前提是APP存活 ,透传消息可以不用接入第三方 通知消息:在设备接收到消息之后,由系统弹出标准安卓通知,用户点击通知栏才激活应用,这种场景,APP无需存活(活着也不受影响),离线场景下,只有通知消息这一条路。 华为消息回执模式 可以看到,离线推送的情况下,华为设备在展示完通知消息后,会给华为Push服务一个回执,而华为Push服务会把这个回执头传给开发者服务器,如此,APP服务端就能判断推送是否到达。 ,小米有两大类点击行为: 完全自定义点击行为 在这种行为下,开发者可以拦截通知点击事件,自定义如何处理后续事件,点击后,MiPushMessage通过PushMessageReceiver继承类的onNotificationMessageClicked

    42620

    Android通知栏微技巧,8.0系统中通知栏的适配

    就好像App保活一样,直到今天还是不断有人问我该如何保活App,试想如何每个人都能保活自己的App,那么最终受害的人是谁?还不是使用Android手机的用户。 每个App都可以自由地创建当前App拥有哪些通知渠道,但是这些通知渠道的控制权都是掌握在用户手上的。用户可以自由地选择这些通知渠道的重要程度,是否响铃、是否振动、或者是否要关闭这个渠道的通知。 只讲概念总是不容易理解,我们还是通过具体的例子来学习一下。想一想我们开发的是一个类似于微信的App,聊天消息是至关重要的,如果用户不小心将聊天消息通知渠道给关闭了,那岂不是所有重要的信息全部都丢了? 为此我们一定要保证用户打开了聊天消息通知渠道才行。 这里我们判断如果通知渠道的importance等于IMPORTANCE_NONE,就说明用户将该渠道的通知给关闭了,这时会跳转到通知的设置界面提醒用户手动打开

    97940

    使用Leancloud实现React Native App消息推送(Push Notification)- Android

    PushModule.isActive()) { //todo:判断PushModule是否实例化 relaunchActivity(); } } 关于接收到通知如何处理,我的思路是当native module收到通知时,通过RCTDeviceEventEmitter触发相应的Event,在js中监听这些Event并响应,修改PushModule 现在我们在Leancloud控制台发送一条通知,手机应该能收到消息: ? 当点击通知的时候,App打开并执行我们自定义的逻辑: ? 实现App打开状态下的推送 到目前为止,我们已经实现了系统级的推送,和iOS一样,我们希望Android App打开状态下也能弹出通知提醒。 同时通知消息提也需要做相应修改,才能让custom receiver接收到,我们可以用Postman来发送消息: ? 消息发出后,App中成功弹出消息提醒,完美。 ?

    97750

    IMSDK华为离线推送快速集成

    一、简介 即时通信 IM 的终端用户需要随时都能够得知最新的消息,而由于移动端设备的性能与电量有限,当 App 处于后台时,为了避免维持长连接而导致的过多资源消耗,即时通信 IM 推荐您使用各厂商提供的系统级推送通道来进行消息通知 本篇主要介绍:在tuikit上如何快速跑通华为离线推送,实现如下功能点,顺便记录一下,在集成过程中,容易踩到的坑点 1、退后台/杀进程,接收离线消息 2、离线消息透传ext字段 3、通知栏点击,打开应用内界面 】的操作为【打开应用】或【打开应用内指定界面】,当点击通知栏的消息时,客户端可以在相应的 Activity 中获取自定义内容,可以参考 OfflineMessageDispatcher.java 类的 </manifest> image.png 20210113_155238.gif 七、app角标刷新 手机系统控制角标 厂商推送离线消息到手机,手机系统会触发刷新通知栏、app角标,在手机系统设置里面打开 当点击通知消息,唤起应用,才能在app通过代码控制角标,主要是需要处理消除角标,tuikit demo中有监听消息已读上报,已读成功了就调用华为api,消除app角标,代码如下: public class

    56240

    IMSDK华为离线推送快速集成

    一、简介 即时通信 IM 的终端用户需要随时都能够得知最新的消息,而由于移动端设备的性能与电量有限,当 App 处于后台时,为了避免维持长连接而导致的过多资源消耗,即时通信 IM 推荐您使用各厂商提供的系统级推送通道来进行消息通知 本篇主要介绍:在tuikit上如何快速跑通华为离线推送,实现如下功能点,顺便记录一下,在集成过程中,容易踩到的坑点 1、退后台/杀进程,接收离线消息 2、离线消息透传ext字段 3、通知栏点击,打开应用内界面 】的操作为【打开应用】或【打开应用内指定界面】,当点击通知栏的消息时,客户端可以在相应的 Activity 中获取自定义内容,可以参考 OfflineMessageDispatcher.java 类的 </manifest> 七、app角标刷新 手机系统控制角标 厂商推送离线消息到手机,手机系统会触发刷新通知栏、app角标,在手机系统设置里面打开/关闭角标功能,就可以了。 当点击通知消息,唤起应用,才能在app通过代码控制角标,主要是需要处理消除角标,tuikit demo中有监听消息已读上报,已读成功了就调用华为api,消除app角标,代码如下: public class

    1K40

    了解iOS消息推送一文就够:史上最全iOS Push技术详解

    这个功能与苹果系统无关,是我们自己的APP开发的一种功能,该push与设置中是否打开通知”无关。 这里以iOS Qzone为例,当APP在前台时,自己发的说说被点赞了,收到的在线push如下: ? 离线push是需要经过苹果的APNs服务器才可以推送到某台设备的某个APP上的,这是和本地push的本质区别。push与设置中是否打开通知”有关。 本地推送是由App自己设定的,并且发送给安装此App的这台设备,属于一对一的对应关系。比较典型的应用是闹钟类似的场景。该push与设置中是否打开通知”有关。 1)判断app是否在线: 此处可以根据APP自身的后台策略如上一次与后台交互的时间等方法来判断APP是否在线或者离线。认为在线,会发送在线push,否则,发送离线push。 :如何构建一套高可用的移动端消息推送系统?》

    9.1K30

    Flutter封装阿里push

    TO USE 一、资源申请 1、首先,你需要到阿里云上面去申请一个appid,申请地址:阿里云 2、注意,如果你需要小米,华为离线推送的话,需要参考这里 参考,注意,华为的离线推送测试一定要等到审核通过之后 ,所谓的离线推送, /////如果需要,注意读一下下面一节,服务端代码那块,如果不需要,直接注释2行,可以满足app在线收到通知 // 注册方法会自动判断是否支持小米系统推送 MiPushRegister.register(this, "2882303761517882020", "5671788227020"); // 注册方法会自动判断是否支持华为系统推送 //服务端配置如下: PushRequest pushRequest = new PushRequest(); // 其余设置省略 // ... // 0:表示消息(默认为0), 1:表示通知 pushRequest.setType // 设置辅助弹窗通知内容 pushRequest.setAndroidPopupBody("PushRequest body2"); // 设定android类型设备通知的扩展属性 pushRequest.setAndroidExtParameters

    6K92

    Android 极光推送API

    而且手机上也收到了通知了 ⑦ 点击通知跳转页面   在使用其他的APP的时候点击通知的时候通常会打开不同的页面或者不同的URL,而目前你要是点击这个通知的话就是重新打开当前应用,这显然不是那么的合理 下面直接运行吧,通过极光平台发送通知App收到通知,然后点击通知栏。 这样它就可以跳转到TestActivity页面了。而如果你要携带一些参数呢? 因为国内的很多手机厂商对Android系统进行了自家系统开发,导致,Android的兼容比较难做,因为有的手机默认应用就不允许接收通知,所以你收不到也不要觉得奇怪,在手机设置里打开通知开关就可以了。 ,那么你一打开这个页面就会跳转到通知开启那里去。 //判断app是否打开通知,如果没有的话就打开手机设置页面 if (!

    26620

    Android 通知监听服务、NotificationListenerService使用方式(详细步骤+源码)

    NotificationListenerService使用 前言 正文 一、配置项目 二、通知监听服务 三、打开通知服务监听 四、页面显示消息类型 五、页面显示消息内容、时间 六、源码 前言   今天是七夕 NotificationListenerService 通知监听服务,就是监听手机上的广播通知,这个在纯App开发中用的比较少,但是在智能穿戴领域用的很多,比如我有一个智能手表,然后有一个配套的App应用 ,由于国产厂商对于Android做了定制化,因此各个厂商的系统App软件的包名就不会是一致的,例如我用的是荣耀,那么我监听到的通知短信是com.hihonor.mms,来电是com.android.incallui 三、打开通知服务监听   使用这个通知服务其实就是打开一个手机上应用的开关,效果上和打开蓝牙差不多,下面先写一个方法检查当前应用是否开启这个服务。 break; } } 下面再运行一下: 可以看到,现在通过接口想消息类型的结果显示到页面上来了。

    1.9K30

    Android 中Scheme协议的使用详解

    简单的说就是android中的一种页面内跳转协议,方便app页面的内的跳转 2.什么时候使用 服务器下发跳转路径,客户端根据 服务器下发跳转路径跳转相应的页面 H5页面点击描点,根据描点具体跳转路径APP 端跳转具体的页面 APP端收到服务器端下发的PUSH通知消息,根据消息的点击跳转路径跳转相关页面 APP根据URL跳转到另外一个APP指定页面 3.协议格式 zymobi://3g2win:9999/ macthId=222&time=10001 4.在app如何使用 在AndroidManifest.xml中对activity标签增加intent-filter设置Schema <activity android:name="android.intent.category.BROWSABLE"/> 复制代码 5.如何调用 1.在html中调用非常简单 <a href="zymobi://3g2win <em>判断</em>Schema<em>是否</em>有效 <em>判断</em>Schema<em>是否</em>有效,也可以说<em>判断</em>应用<em>是否</em>安装(在确定要启动的应用已经配置了scheme) <em>app</em>源生<em>判断</em>Sheme<em>是否</em>有效 Intent intent = newIntent

    1.1K20

    Android NotificationListenerService使用方式(详细步骤+源码)

    NotificationListenerService 通知监听服务,就是监听手机上的广播通知,这个在纯App开发中用的比较少,但是在智能穿戴领域用的很多,比如我有一个智能手表,然后有一个配套的App应用 主要是项目依赖库的添加,打开工程的build.gradle的repositories{}闭包下添加依赖库: maven {url "https://jitpack.io"} 然后在app模块的build.gradle ,由于国产厂商对于Android做了定制化,因此各个厂商的系统App软件的包名就不会是一致的,例如我用的是荣耀,那么我监听到的通知短信是com.hihonor.mms,来电是com.android.incallui 三、打开通知服务监听   使用这个通知服务其实就是打开一个手机上应用的开关,效果上和打开蓝牙差不多,下面先写一个方法检查当前应用是否开启这个服务。 break; } } 下面再运行一下: 可以看到,现在通过接口想消息类型的结果显示到页面上来了。

    1.1K41

    Activity启动流程

    另一种是打开新的app,即为Launcher启动新的Activity。后边启动Activity的流程是一样的,区别是前边判断进程是否存在的那部分。 Activity启动阶段 涉及到的概念 进程:Android系统为每个APP分配至少一个进程 IPC:跨进程通信,Android中采用Binder机制。 通过ActivityStack决定是否需要启动新的进程。 暂停完,在该activity还不可见时,通知AMS,根据要启动的Activity配置ActivityStack。然后判断要启动的Activity进程是否存在? 判断Application是否存在,若不存在,通过LoadApk.makeApplication创建一个。在主线程中通过thread.attach方法来关联ApplicationThread。 5.

    38340

    扫码关注腾讯云开发者

    领取腾讯云代金券