首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

android的通知栏消息点击事件如果是打开一个activity时,我们要考虑两种情况: 应用正在前台运行。 应用已退出。...对于第二种情况,我参照了很多app的做法,现总结为以下两种: 点击通知栏消息打开activity按下返回键后判断app是否启动,如果没有启动就要启动app; 点击通知栏消息时判断app是否正在前台运行,...需要用到几个方法:获取应用的运行状态,判断应用进程是否在运行,判断某个activity是否存在任务栈里面。 判断某个服务是否正在运行,这个不重要,可能其它地方用到就先贴出来了。.............. } 在onDestroy方法中判断该应用是否正在前台运行,但是这里只能用MainActivity是否存在任务栈里面判断,因为当你点击通知消息跳转到某个activity的时候,任务栈里该...intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); } } 最后是第二种实现方式 在点击通知消息时就判断应用是否在前台运行

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

    Flutter封装阿里push

    ,所谓的离线推送, /////如果需要,注意读一下下面一节,服务端代码那块,如果不需要,直接注释2行,可以满足app在线收到通知 // 注册方法会自动判断是否支持小米系统推送...MiPushRegister.register(this, "2882303761517882020", "5671788227020"); // 注册方法会自动判断是否支持华为系统推送...HuaWeiRegister.register(this); //GCM/FCM辅助通道注册,这个地方打开的情况我没测试,不过,GCM你懂的。...APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转 pushRequest.setAndroidOpenType...// 设置辅助弹窗通知内容 pushRequest.setAndroidPopupBody("PushRequest body2"); // 设定android类型设备通知的扩展属性 pushRequest.setAndroidExtParameters

    9.5K92

    再谈Android客户端进程保活

    在移动设备中内存往往是有限的,打开的应用越多,后台缓存的进程也越多。在系统内存不足的情况下,系统开始依据自身的一套进程回收机制来判断要kill掉哪些进程。...自身跟服务器通过轮询,或者长连接; GCM即Google Cloud Messaging,主要用于消息推送的,即使在应用没有起来的情况下,客户端也能通过GCM收到来自服务器的消息。...Sync 通过后台和终端的seq值对比,判断该下发哪些消息。终端正常处理消息后,seq更新为最新值。 Sync 的主要场景: a. 长连无法建立时,通过Sync 定期轮询; b....GCM: 只要机器上有GMS ,启动时就尝试注册GCM,并通知后台。服务器会根据终端是否保持长连,决定是否由GCM通知。GCM主要针对国外比较复杂的网络环境。...从这个原理来说,我们可以通过提高进程的优先级来保活。 值得注意的是,Android 的前台service机制。但该机制的缺陷是通知栏保留了图标。

    3.8K71

    Android M 特性 Doze and App Standby模式详解

    3.退出Doze模式(系统退出休眠,所有的应用程序恢复正常活动): 用户唤醒装置移动,打开屏幕 或者设备连接电源 4.Doze有哪些限制?...Google Cloud Messaging(GCM)是一个云到设备的服务,可以让你支持实时在云端服务和Android设备上应用程序之间的消息传递。...以下来GCM自官方解释: 一个GCM实现包括谷歌连接服务器,在你的环境中通过HTTP或XMPP协议的连接服务器进行交互的应用程序服务器和客户端应用程序。...除了GCM,Android6.0及更高版本还提供了Doze模式白名单列表,通过设置应用程序进入白名单列表可逃脱Doze模式的各种限制。...使用Google提供的GCM; 4. 通过so绕过Doze模式。

    7.3K11

    Android P正式版即将到来:后台应用保活、消息推送的真正噩梦

    (有关GCM的介绍详见:《移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)》、《为何微信、QQ这样的IM工具不使用GCM服务推送消息?》...、《求教android消息推送:GCM、XMPP、MQTT三种方案的优劣》)。...7.5 极少 (Rare) 若应用的使用频率很低,它就会被划分至该分组,酒店应用就是一个很好的例子——用户只有在下榻这个酒店的时候才会打开此应用。...8、Andriod P电量管理特性2:后台限制 当系统监测到应用消耗过多资源时,系统会通知并询问用户是否需要限制该应用的后台活动。...(请查阅《后台服务限制》了解如何判断应用是否为前台运行。) 详细限制列表,请查阅《附件:电量管理限制》。

    3.9K30

    APP消息推送方案调研

    介绍消息类型推送服务支持通知栏消息和透传消息通知栏消息通知栏消息由系统通道直接下发,消息将在终端的通知中心下拉列表呈现,不需要应用进程驻留后台,用户点击通知栏消息后会触发相应的动作,如打开应用、打开网页等...透传消息的到达率受Android系统和应用是否驻留在后台影响,推送服务不保证透传消息的高到达率。透传消息的常用场景:好友邀请、VoIP呼叫、语音播报等。...高到达率透传消息的送达依赖应用的常驻,而通知栏消息在华为手机上通过推送服务应用统一展示,即使应用没有启动,通知消息也能送消息推送原理APNsApns:Apple Push Notification service...当你接收到通知,打开应用,才开始从腾讯服务器接收数据,跟你之前看到通知里内容一样,但却是经由两个不同的通道而来。...Android平台在不使用GCM的情况下就需要将自己的服务器或是第三方推送服务提供商的服务器与设备建立一条长连接,通过长连接进行推送。

    40510

    FCM---Android系统级推送---你还在用第三方推送?

    如果您希望在后台进行接收应用通知之外的任何消息处理,则必须添加此服务。要在前台应用中接收通知、接收数据负载以及发送上游消息等,您必须扩展此服务。...通过替换 FirebaseMessagingService.onMessageReceived 方法,您可以根据收到的消息执行操作,并获取消息数据: ?...此应用服务器通过选定的FCM连接服务器,使用合适的 XMPP 或 HTTP 协议向客户端应用发送数据。...您可以发送带有预定义字段的通知消息或自定义数据消息;请参阅消息负载中的通知和数据,了解关于负载支持的详细信息。本页中的示例用于说明如何通过 HTTP协议发送数据消息。...通知 要发送通知,可设置 notification 键并针对通知消息的用户可见部分设置必要的预定义键选项集。 例如,这是 IM 应用中的 JSON 格式的通知消息。

    12.9K30

    App消息推送的原理

    (更多请参见以下文章:《移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)》、《Android端做消息推送有没有比较好的方案?》、《为何微信、QQ这样的IM工具不使用GCM服务推送消息?》...当你接收到通知,打开应用,才开始从腾讯服务器接收数据,跟你之前看到通知里内容一样,但却是经由两个不同的通道而来 2.1.2 优劣势 所以, iOS 的推送,可以不严谨的理解为: 1)苹果服务器朝手机后台挂的一个...IM 服务程序发送的消息; 2)系统根据该 IM 消息识别告诉哪个 Apps 具体发生了什么事; 3)系统分别通知这些 Apps ; 他们带给用户的好处是实实在在的: 1)安全:只有登录过的开发者可以通过苹果的服务器推送...2.2.1 基本原理 Android平台在不使用GCM的情况下就需要将自己的服务器或是第三方推送服务提供商的服务器与设备建立一条长连接,通过长连接进行推送。...(原理)有3种:Push、Pull 和 SMS 3.2.1 轮询(Pull)方式 应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。

    5.9K30

    Android微信智能心跳方案

    主要方法是参考WhatsApp和Line中有价值的做法,结合影响TCP连接寿命的因素,实现Android微信后台自适应心跳算法,同时使用GCM作为辅助通道增加新消息通知的可靠性。 2....b)GCM只传递数据(可以传递小于4kb的数据),对这些数据的处理可以全部由开发者控制。 c)Android应用不需要运行就可以接收消息(通过Android广播)。...微信Server在发现长连接失效的情况下,可以使用GCM 作为辅助通道通知客户端有新消息,客户端收到push通知后做一次sync。...4.3 自适应心跳间隔优化 4.3.1影响TCP连接寿命的因素 在Android下,不管是GCM,还是微信,都是通过TCP长连接来进行Push消息的,TCP长连接存活,消息Push就及时,所以要对影响...并且系统没有网络变化事件,只有等应用判断主动建立新的TCP连接才引起安卓设备重新向DHCP Server申请IP租用。 2、 未到租期的一半时间,安卓设备重新向DHCP Server申请IP租用。

    8.5K142

    全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)1、引言2、先总结一下,Android端APP为何要搞保活黑科技?3、相关文章4、常见的Android端保活黑科技方案盘点5、汇

    1、引言 对于IM应用和消息推送服务的开发者来说,在Android机型上的后台保活是个相当头疼的问题。 老板一句:“为什么微信、QQ能收到消息,而你写的APP却不行?”...回到正题,Android程序员都知道,随着Android系统的不断完善和升级,Andriod应用的后台保活是一次比一次难(详见《Android P正式版即将到来:后台应用保活、消息推送的真正噩梦》),但日子还得过...以消息推送为例,当APP处于后台或关闭时,消息推送对于某些应用来说非常有用,比如: 1)IM即时通讯聊天应用:聊天消息通知、音视频聊天呼叫等,典型代表有:微信、QQ、易信、米聊、钉钉、Whatsup、Line...(有关GCM的介绍详见:《移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)》、《为何微信、QQ这样的IM工具不使用GCM服务推送消息?》...、《求教android消息推送:GCM、XMPP、MQTT三种方案的优劣》)。 ?

    1.8K20

    Android开发笔记(一百六十八)为应用绑定通知渠道并展示消息角标

    为了分清消息通知的轻重缓急,从Android8开始新增了通知渠道,并且必须指定通知渠道才能正常推送消息。...enableLights:推送消息时是否让呼吸灯闪烁。 enableVibration:推送消息时是否让手机震动。 setShowBadge:是否在应用图标的右上角展示小红点。...因此在创建渠道之前,最好先调用通知管理器的getNotificationChannel方法,判断是否存在该编号的通知渠道,只有不存在的情况才要创建通知渠道。...(true); // 通知渠道是否让手机震动 channel.setShowBadge(true); // 通知渠道是否在应用图标的右上角展示小红点 //...原本通知渠道提供了setShowBadge方法,可设置是否在应用图标的右上角展示小红点(此红点又称消息角标),调用该方法设置true之后,有未读消息时就显示红点,无未读消息则不显示红点。

    1.8K40

    google的GCM推送使用简介

    即Google Cloud Messaging,主要用于消息推送的,即使在应用没有起来的情况下,客户端也能通过GCM收到来自服务器的消息。...首先来看看目前应用不启动实现推送的方式有哪些: 1.使用Google自带的GCM实现推送 2.采用监听开机广播的方式,启动后台服务,为了防止被杀死,采用多进程的方式,监听服务是否被杀,被杀之后,把它拉起来...GCM服务器接收应用服务器的消息,然后再把消息转发给客户端,服务器端根据自己的需要实现xmpp或者http接口,和GCM服务器进行通信,客户端想要接收消息,需要使用GCM提供的API。...二.客户端使用GCM 1.使用限制: a.最低要求Android 2.2+的设备,并且安装了Google应用商店 b.想要使用GCM新特性,要求Android 2.3+ c.低于Android 4.0.4..." } (4)修改AndroidMenifest.xml文件 a.添加权限,因为我们不允许其他的应用接收和发送属于自己应用的消息,因此添加权限屏蔽其他应用,权限格式:<application-package-name

    6.8K10

    全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)

    回到正题,Android程序员都知道,随着Android系统的不断完善和升级,Andriod应用的后台保活是一次比一次难(详见《Android P正式版即将到来:后台应用保活、消息推送的真正噩梦》),但日子还得过...以消息推送为例,当APP处于后台或关闭时,消息推送对于某些应用来说非常有用,比如: 1)IM即时通讯聊天应用:聊天消息通知、音视频聊天呼叫等,典型代表有:微信、QQ、易信、米聊、钉钉、Whatsup、Line...; 2)新闻资讯应用:最新资讯通知等,典型代表有:网易新闻客户端、腾讯新闻客户端; 3)SNS社交应用:转发/关注/赞等通知,典型代表有:微博、知乎; 4)邮箱客户端:新邮件通知等,典型代表有:QQ邮箱客户端...(有关GCM的介绍详见:《移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)》、《为何微信、QQ这样的IM工具不使用GCM服务推送消息?》...、《求教android消息推送:GCM、XMPP、MQTT三种方案的优劣》)。

    4.4K20

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

    push与设置中是否打开“通知”有关。 这里最简单的以大家常用的手机QQ为例,当APP在后台、锁屏或者被kiil了进程时,收到了消息: ?...比较典型的应用是闹钟类似的场景。该push与设置中是否打开“通知”有关。 最容易看到本地push的场景,可以直接在手机设置一个计时器,计时器时间到了就会弹出本地push: ? ?...1)判断app是否在线: 此处可以根据APP自身的后台策略如上一次与后台交互的时间等方法来判断APP是否在线或者离线。认为在线,会发送在线push,否则,发送离线push。...消息推送:GCM、XMPP、MQTT三种方案的优劣》 《移动端实时消息推送技术浅析》 《扫盲贴:浅谈iOS和Android后台实时消息推送的原理和区别》 《绝对干货:基于Netty实现海量接入的推送服务技术要点...》 《移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)》 《为何微信、QQ这样的IM工具不使用GCM服务推送消息?》

    23.6K30

    使用 FCM 通知您的用户

    如果您仍使用已被弃用的 Google 云消息 (GCM) 或 C2DM 库,是时候升级到 FCM 了! 有两种类型的 FCM 消息可选: 通知消息,简化了通知处理且默认高优先级。...如需进一步了解电源管理,可参阅这篇文章:"Android 9 Pie 中的 Moar 电源及未来"。 是否需要发送通知? 您发送的所有通知都应该设计良好且可执行,并且能为用户提供及时相关的信息。...如果您需要发送带图片等丰富媒体内容的通知,或想通过向应用持续同步媒体内容来改善用户体验,就需要超过 4KB 有效负载限制。...可通过 isBackgroundRestricted API 检查应用是否处于受限状态。如果应用处于受限状态,FCM 消息则根本不会被传递至应用。...如果您只将高优先级消息用于这些目的,您的高优先级将被立即传递且远程通知会被无延迟显示。此外,当高优先级消息通知让用户打开应用时,应用会被提升至活跃分组,不再受应用待机分组对 FCM 高优先级数量限制。

    3.5K30

    扫盲贴:认识MQTT通信协议

    例如通过卫星和代理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协议开销小和能高效的向一和多个接收者传递信息,故同样适用于称动应用设备上。...在未来几年,MQTT的应用会越来越广,值得关注。 通过MQTT协议,目前已经扩展出了数十个MQTT服务器端程序,可以通过PHP,JAVA,Python,C,C#等系统语言来向MQTT发送相关消息。...6、市面上的主流推送方案应用比较 ►[1] APNS(Apple Push Notification Service)和GCM(Google Cloud Messaging)  APNS和GCM是iOS...3)某些运营商可能限制了5228端口,移动3G/2G下,发现几乎无法连接上GCM服务器,也就无法获得GCM通知,WhatsApp放后台10分钟后,经常很长时间都收不到Push消息。...因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。

    2.3K31

    Android M doze特性预研

    不过在判断自身是否在白名单这一问题上通过hack接口isPowerSaveWhitelistApp()的方式还是还是可行。...[注]Release 2中已经将判断应用是否在白名单这一功能接口在PowerManager.java中公开,接口实现如下: ?...GCM 对于网络应用,特别是如微信等IM应用,doze模式下限制网络,消息收发功能必然受到影响,Android给出了解决方案-GCM: ?...微信本身已经具备注册接收GCM推送功能,在接收到GCM推送消息后,会取拉取消息内容,前一个步骤由系统GCM服务完成,GCM服务默认已在白名单中,而后面拉取的动作需要微信联网完成。...经过测试在doze模式下,即使接收到了GCM推送后,应用再发起网络连接的结果和上面的网络测试一样,仍旧是被禁止的!Google决心强推所有的消息接收都只能依靠GCM推送!?只能说持续跟进+拭目以待。

    2K91
    领券