搜索
bottom↓
回复: 21

懂android编程的进来一下,有事请教。关于app休眠唤醒自己的问题。

[复制链接]

出45入88汤圆

发表于 2020-6-27 16:58:57 | 显示全部楼层 |阅读模式
针对这个问题,我写了个测试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;
        }
    }

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出45入88汤圆

 楼主| 发表于 2020-6-27 17:00:47 | 显示全部楼层
补充一下,测试程序已经在系统电池里设置了未优化。

出0入0汤圆

发表于 2020-6-27 17:01:06 来自手机 | 显示全部楼层
这个是应用保活的话题。关注

出110入93汤圆

发表于 2020-6-27 17:07:30 | 显示全部楼层
难,很难搞,系统究竟是怎么回收的,估计不同厂家策略都不同。充着电时,可能没问题,拔掉充电线,就十有八九挂了。

出110入93汤圆

发表于 2020-6-27 17:09:18 | 显示全部楼层
别和微信比,程序员最怕听到说,人家微信怎么可以。人家是大厂,在手机系统里是白名单的。

出0入4汤圆

发表于 2020-6-27 17:30:26 | 显示全部楼层
memstone 发表于 2020-6-27 17:09
别和微信比,程序员最怕听到说,人家微信怎么可以。人家是大厂,在手机系统里是白名单的。 ...

产品经理就是怕听见程序员说大厂有白名单,水平不够别扯白名单来凑。  安卓系统有那么傻?所有的应用难道都要靠手机厂家去搞白名单里才常驻后台?

出0入4汤圆

发表于 2020-6-27 17:33:39 | 显示全部楼层
给你个建议,换三星手机,国产哪些垃圾除了安卓系统本身的限制外,还喜欢深度修改系统,往往还有各种自带的管家给你干掉后台。

出45入88汤圆

 楼主| 发表于 2020-6-27 17:39:30 | 显示全部楼层
wajlh 发表于 2020-6-27 17:33
给你个建议,换三星手机,国产哪些垃圾除了安卓系统本身的限制外,还喜欢深度修改系统,往往还有各种自带的 ...

后台没被干掉,只是定时器没有唤醒自己罢了。到系统退出休眠后还能继续工作。

出45入88汤圆

 楼主| 发表于 2020-6-27 17:47:55 | 显示全部楼层
网上有介绍用AlarmManager.RTC来唤醒休眠,它是硬件唤醒。

出0入0汤圆

发表于 2020-6-27 18:19:37 | 显示全部楼层
要用RTC硬件定时器,高版本的安卓下普通定时器在休眠时不能正常工作的

出110入93汤圆

发表于 2020-6-27 18:22:36 | 显示全部楼层
wajlh 发表于 2020-6-27 17:33
给你个建议,换三星手机,国产哪些垃圾除了安卓系统本身的限制外,还喜欢深度修改系统,往往还有各种自带的 ...

我就是三星测试的,插电正常,不然就断连接,你有本事,你说说咋整?
如果白名单没用,人家整什么白名单。你知道系统是怎么监控应用状态的吗?好吧,你牛,产品经理。

出110入93汤圆

发表于 2020-6-27 18:25:55 | 显示全部楼层
Edesigner. 发表于 2020-6-27 17:47
网上有介绍用AlarmManager.RTC来唤醒休眠,它是硬件唤醒。

还要看你的频度的,如果每分钟都调用,十有八九,列入异常,给你干掉。
当然,应用在前台,应该问题不大,但在后台,指望不上。不然,为什么那么多应用,无法收到消息通知?

出0入4汤圆

发表于 2020-6-27 19:58:32 | 显示全部楼层
memstone 发表于 2020-6-27 18:22
我就是三星测试的,插电正常,不然就断连接,你有本事,你说说咋整?
如果白名单没用,人家整什么白名单 ...

多了不敢说,我们搞过2款APP,都是过万用户的。都是要实时推送消息或者报警的,安卓/IOS都支持,从来没你说的要跟手机厂家申请加入白名单的,顶多是手机自己设置一下允许后台运行之类的。当然有些品牌型号的手机就是搞不定,比如菊花品牌的个别型号,就算是微信上去也会被杀。

出110入93汤圆

发表于 2020-6-27 20:13:47 | 显示全部楼层
wajlh 发表于 2020-6-27 19:58
多了不敢说,我们搞过2款APP,都是过万用户的。都是要实时推送消息或者报警的,安卓/IOS都支持,从来没你 ...

请问是实时推送,还是定时拉取?

出0入4汤圆

发表于 2020-6-27 20:41:41 | 显示全部楼层
memstone 发表于 2020-6-27 20:13
请问是实时推送,还是定时拉取?

第一款APP是智能手表/手环配套推送消息的,第二款APP是NB烟感配套推送的报警的,谁会用定时拉取这种笨办法呢?

出110入93汤圆

发表于 2020-6-27 21:49:37 | 显示全部楼层
wajlh 发表于 2020-6-27 20:41
第一款APP是智能手表/手环配套推送消息的,第二款APP是NB烟感配套推送的报警的,谁会用定时拉取这种笨办 ...

历害,服了。请问是什么通讯协议?

出0入4汤圆

发表于 2020-6-27 22:08:43 | 显示全部楼层
memstone 发表于 2020-6-27 21:49
历害,服了。请问是什么通讯协议?

极光是个好东西

出45入88汤圆

 楼主| 发表于 2020-6-27 22:16:00 | 显示全部楼层
wajlh 发表于 2020-6-27 22:08
极光是个好东西

为什么要用第三方?其实可以自己做。

出0入4汤圆

发表于 2020-6-27 22:24:10 | 显示全部楼层
Edesigner. 发表于 2020-6-27 22:16
为什么要用第三方?其实可以自己做。

各有优缺点,根据自己的项目来定就好。

出0入0汤圆

发表于 2020-6-28 00:02:36 来自手机 | 显示全部楼层
白名单机制,极光也是在白名单里面的,无解,用第三方推送服务是最简单可行的

出0入0汤圆

发表于 2020-6-28 00:02:36 来自手机 | 显示全部楼层
白名单机制,极光也是在白名单里面的,无解,用第三方推送服务是最简单可行的

出20入25汤圆

发表于 2020-6-28 11:01:44 来自手机 | 显示全部楼层
白名单没问题,原来也想搞
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 09:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表