【发布时间】:2018-08-18 21:05:26
【问题描述】:
我几乎完成了一个将计时器集成为 UI 一部分的 NativeScript 应用程序。 (我再说一遍,一个 NativeScript 应用程序。NativeScript 有点像 React Native。它是用 JavaScript 编写的,而不是 Java。)用户将创建一个运行时间长达约 100 分钟但运行时间最短为 1 秒的计时器,其中期望在此过程结束时确保警报响起,无论他们是否一直在使用手机。当我在手机上运行此应用程序时,在手机屏幕锁定一段时间后(我不确定需要多长时间,但可能需要 10-30 分钟),警报不会响起,应用程序重新启动到主页。理想情况下,我希望完全保留应用程序的状态,并在屏幕关闭时继续在我的 Angular 组件中进行的处理。是的,我知道这会消耗电池寿命。
现在,我用来在 Android 中强制部分唤醒锁定的代码如下所示:
acquireWakeLock() {
//enforce a new partial wake lock
const PowerManager = android.os.PowerManager;
let powerManager = <PowerManager>application.android.context.getSystemService(android.content.Context.POWER_SERVICE);
this.wakelock = <PowerManager.WakeLock>powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "RoutineTimer");
this.wakelock.acquire();
console.log("Acquired new wake lock");
}
(请原谅冗长的引用,但我将它们放在这里是为了区分“android”和“application.android”。)
这根本没有预期的效果。它是从 Angular 组件调用的,但位于 Angular 服务中。
有人知道这是怎么回事或有其他建议吗?我不想使用全屏(全屏)唤醒锁,尽管我知道有一个插件。出于经济原因,我也不希望从服务器发送任何类型的广播。
【问题讨论】:
标签: android nativescript nativescript-angular