【问题标题】:Android screen lock/car charger is killing my threadAndroid屏幕锁/车载充电器正在扼杀我的线程
【发布时间】:2010-09-11 00:38:40
【问题描述】:

我有一个非常棘手的问题,我无法解决。我有一个应用程序,可以远程进入飞行模式以节省电量。我有一个线程正在运行,它获取省电消息,删除所有其他线程的回调,将手机置于飞行模式,并在唤醒手机之前等待指定的分钟数。

当手机插入我的笔记本电脑(启用 USB 调试等)时,此功能就可以了。手机进入飞行模式,屏幕锁定,然后在特定分钟数后,应用“唤醒”并继续正常运行。

当手机插入车载充电器时,手机手机进入飞行模式,但线程永远不会唤醒手机。仅当屏幕也设置为超时时才会出现此问题...当我将屏幕设置为“永不超时”并将手机插入车载充电器时,应用程序会正常唤醒。

似乎电源和屏幕超时的某种组合在系统级别杀死了我的节能线程。我知道这篇文章是针对我的应用程序的,但是以前有人遇到过类似的问题吗?

【问题讨论】:

    标签: android multithreading power-management airplane


    【解决方案1】:

    如果要等待 n 分钟,则需要使用警报,而不是线程。当您的应用程序不在前台时,您永远不能假设线程保持活动状态。查看http://developer.android.com/reference/android/app/AlarmManager.html

    【讨论】:

    • 那么,如果我在“n”分钟后使用闹钟启动活动,我如何让该活动调用父类中的函数以“重新启动所有线程”?跨度>
    • 您在警报中定义一个意图(通过 PendingIntent)。这个意图可以是你想要的任何东西,也可以是告诉应用重启线程的特殊意图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    相关资源
    最近更新 更多