【问题标题】:Could WakeLock cause phone reboot?WakeLock 会导致手机重启吗?
【发布时间】:2011-04-05 05:20:05
【问题描述】:

我有一个应用需要持续使用 WiFi 和加速度计传感器来收集数据,所以我需要使用 WakeLock 方法来保持这些传感器处于活动状态。但是现在我遇到了手机运行几个小时后有时会随机重启的问题。我不知道这是我的应用程序还是手机固件引起的。有没有人对此有一些想法。实际上,我认为我的应用程序中只有一件事特别是我需要一直使用WakeLock,那么wakelock会导致手机随机重启吗?

【问题讨论】:

  • 电池没电了吗?插入时会出现这种情况吗?
  • 你的重启问题解决了吗?

标签: java android


【解决方案1】:

WakeLock 通常不会导致重启问题。您的编码中可能还有其他一些问题。 如果在使用后未释放 WakeLock,则会大量消耗电池。

WakeLock 是一种保持屏幕开启的低效方式。而是使用 WindowManager 来发挥作用。以下一行就足够了 WakeLock。此功能还需要 WakeLock 权限。这段代码也比wakeLock高效。

getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);

您无需手动释放 WakeLock。此代码将允许 Android 系统自动处理锁定。当您的应用程序处于前台时,WakeLock 将被保持,否则 android 系统会自动释放锁。

【讨论】:

    【解决方案2】:

    您应该尝试在需要唤醒锁的任何布局中使用 android:keepScreenOn="true"。它会自动处理它,最好只在您的 xml 布局中设置它,因为它不会使您的代码与显示相关的代码混淆。

    Google IO 2009 中正在讨论它。http://dl.google.com/io/2009/pres/W_0300_CodingforLife-BatteryLifeThatIs.pdf

    【讨论】:

    • 其实,我只是想让屏幕保持昏暗,但传感器会运行以收集数据。我还认为,如果我使用在后台运行它的服务,它需要唤醒锁方法。 keepSreenOn 能实现同样的功能吗?
    • 为什么需要始终保持 WakeLocks 开启?如果你正在运行一个服务,你的活动被销毁是可以的,当用户回到它时,它会被重新创建。
    猜你喜欢
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2018-09-27
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多