懂android编程的进来一下,有事请教。关于app休眠唤醒自己的问题。
针对这个问题,我写了个测试APP,用TimerTask定时器每10秒中断一次,播放一次短暂的声音。灭屏后每10秒听到一次响声。没过几分钟就听不到声音了,估计是休眠了(休眠了就连CPU也停止执行了)。用手点一下屏,OLED屏见到解锁界面,一会儿又可以听到声音了。过一会后又听不到声音了。我用另外一个手机发微信给测试的手机,测试手机来微信消息了,同时我的测试程序也有声音了。我在我的测试软件里加上电源锁,阻止系统进入休眠,加上这代码后果然,我的测试程序每10秒就响一声,没有停止过。但问题是阻止系统进入休眠肯定影响整个手机的待机时间。但微信为什么又可以在休眠时收到消息呢?他用了什么技术?我猜测如下 :有TCP/IP数据进入,网络模块唤醒了系统。你们觉得呢?class Task extends TimerTask {
// 必须实现方法run()
public void run() {
这里播放半秒语音
}
}
电源锁:
//在获取电源锁的程序中,必须在其Manifest.xml文件中加入下面的权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
private PowerManager.WakeLock mWakeLock;
//申请设备电源锁
private void acquireWakeLock()
{
if (null == mWakeLock)
{
PowerManager pm = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK|PowerManager.ON_AFTER_RELEASE,"");
if (null != mWakeLock)
{
mWakeLock.acquire();
}
}
}
//释放设备电源锁
private void releaseWakeLock()
{
if (null != mWakeLock)
{
mWakeLock.release();
mWakeLock = null;
}
} 补充一下,测试程序已经在系统电池里设置了未优化。 这个是应用保活的话题。关注 难,很难搞,系统究竟是怎么回收的,估计不同厂家策略都不同。充着电时,可能没问题,拔掉充电线,就十有八九挂了。 别和微信比,程序员最怕听到说,人家微信怎么可以。人家是大厂,在手机系统里是白名单的。 memstone 发表于 2020-6-27 17:09
别和微信比,程序员最怕听到说,人家微信怎么可以。人家是大厂,在手机系统里是白名单的。 ...
产品经理就是怕听见程序员说大厂有白名单,水平不够别扯白名单来凑。安卓系统有那么傻?所有的应用难道都要靠手机厂家去搞白名单里才常驻后台? 给你个建议,换三星手机,国产哪些垃圾除了安卓系统本身的限制外,还喜欢深度修改系统,往往还有各种自带的管家给你干掉后台。 wajlh 发表于 2020-6-27 17:33
给你个建议,换三星手机,国产哪些垃圾除了安卓系统本身的限制外,还喜欢深度修改系统,往往还有各种自带的 ...
后台没被干掉,只是定时器没有唤醒自己罢了。到系统退出休眠后还能继续工作。 网上有介绍用AlarmManager.RTC来唤醒休眠,它是硬件唤醒。 要用RTC硬件定时器,高版本的安卓下普通定时器在休眠时不能正常工作的 wajlh 发表于 2020-6-27 17:33
给你个建议,换三星手机,国产哪些垃圾除了安卓系统本身的限制外,还喜欢深度修改系统,往往还有各种自带的 ...
我就是三星测试的,插电正常,不然就断连接,你有本事,你说说咋整?
如果白名单没用,人家整什么白名单。你知道系统是怎么监控应用状态的吗?好吧,你牛,产品经理。 Edesigner. 发表于 2020-6-27 17:47
网上有介绍用AlarmManager.RTC来唤醒休眠,它是硬件唤醒。
还要看你的频度的,如果每分钟都调用,十有八九,列入异常,给你干掉。
当然,应用在前台,应该问题不大,但在后台,指望不上。不然,为什么那么多应用,无法收到消息通知? memstone 发表于 2020-6-27 18:22
我就是三星测试的,插电正常,不然就断连接,你有本事,你说说咋整?
如果白名单没用,人家整什么白名单 ...
多了不敢说,我们搞过2款APP,都是过万用户的。都是要实时推送消息或者报警的,安卓/IOS都支持,从来没你说的要跟手机厂家申请加入白名单的,顶多是手机自己设置一下允许后台运行之类的。当然有些品牌型号的手机就是搞不定,比如菊花品牌的个别型号,就算是微信上去也会被杀。 wajlh 发表于 2020-6-27 19:58
多了不敢说,我们搞过2款APP,都是过万用户的。都是要实时推送消息或者报警的,安卓/IOS都支持,从来没你 ...
请问是实时推送,还是定时拉取? memstone 发表于 2020-6-27 20:13
请问是实时推送,还是定时拉取?
第一款APP是智能手表/手环配套推送消息的,第二款APP是NB烟感配套推送的报警的,谁会用定时拉取这种笨办法呢? wajlh 发表于 2020-6-27 20:41
第一款APP是智能手表/手环配套推送消息的,第二款APP是NB烟感配套推送的报警的,谁会用定时拉取这种笨办 ...
历害,服了。请问是什么通讯协议? memstone 发表于 2020-6-27 21:49
历害,服了。请问是什么通讯协议?
极光是个好东西 wajlh 发表于 2020-6-27 22:08
极光是个好东西
为什么要用第三方?其实可以自己做。 Edesigner. 发表于 2020-6-27 22:16
为什么要用第三方?其实可以自己做。
各有优缺点,根据自己的项目来定就好。 白名单机制,极光也是在白名单里面的,无解,用第三方推送服务是最简单可行的 白名单机制,极光也是在白名单里面的,无解,用第三方推送服务是最简单可行的 白名单没问题,原来也想搞
页:
[1]