android - 有谁能说说安卓中微信的两个进程是用过什么原理可以互相启动,从而保持接收消息的状态?
迷茫
迷茫 2017-04-17 13:42:10
[Android讨论组]

如题,最近一个项目需要一个后台进程不间断的等待push信息或者其它信息,用broadcast receiver 做了一部分启动进程的

                <action android:name="android.intent.action.BOOT_COMPLETED"></action>
                <action android:name="android.intent.action.USER_PRESENT"></action>

用了这两个,一个在开机时启动,一个在解锁后启动(目前只知道这两个是在配置文件有效的,而且属于用户常用操作),但是如果用户在玩手机,或者看视频没触发解锁操作就没办法了。
可是看到微信,QQ,微博的双进程却不被影响,想问问他们是通过什么方式来启动进程的?
如果代码很长解释下原理就可以,我有点想不明白

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
大家讲道理

长轮训,或者说被动轮训。
我是这么做的。

有一个Receiver是专门用来启动/通知服务,告诉他改查询/做某些事情了,这个Receiver被注册给AlarmManager中,定时被调用。

如果AlarmManager中得定时或者整个服务被停掉了,这两个比如BOOT_COMPLETED就会在启动的时候再出发Receiver继续启动服务。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号