Android消息推送通知的原理:

直接以目前项目为例来说明:

项目中的App有三个进程:App主进程、消息推送服务进程、文件传输服务进程;这里主要记录下消息推送这个无耻的进程,为何可以在App退出后和重启手机后仍旧可以推送消息。

消息推送服务进程:

        <!-- 推送消息服务 -->
        <service
            android:name="com.xxxx.downloadprovider.notification.pushmessage.PushMsgService"
            android:process="com.xxxx.pushmessage" >
        </service>

在App主进程的AndroidManifest.xml中注册了一个广播接收器(BroadcastReceiver)用于在Android系统启动的时候获取重启/启动广播消息,且这个BrocastRecevier是处于一个独立进程中的,也就是说只要使用过这个App的话,就注册并初始化了一个这样的广播,而且是作为独立进程一直存在的,即使关了App也不会关闭这个独立进程。

        <!-- for 推送消息服务开机自动启动BroadcastReceiver -->
        <receiver
            android:name="com.xxxx.downloadprovider.service.OsBootReceiver"
            android:label="OsBootReceiver"
            android:process="com.xxxx.pushmessage" >
            
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>

在App第一次启动的时候,创建了这个处于独立进程中的消息推送通知,可以在App运行的过程中使用,等到App关闭后,这个独立进程一直存在,也就说仍旧可以接受消息推送;即使等到重启手机,仍旧有一个广播接收开机事件,接收到此开机事件后,启动消息推送通知。。。。就这样,只要用户使用了这个App一次,那么这个消息推送就一直存在。。。耗费用户的流量,必须手动的把这个进程关掉才行,但是只要重启手机,那么这个消息推送又他妈的会出现。。。。人生就是这么悲催。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值