我有一个需要定期轮询 Web API 以获取数据的 Android Phonegap (3.0) 应用程序。
我想让它保持活力,即使它被移到后台。我遵循了这篇文章中的一般建议并实现了一个WakeLock
withPARTIAL_WAKE_LOCK
级别,这是在应用程序的 onCreate 方法中创建的
pm = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, org.apache.cordova.CordovaActivity.TAG);
wl.acquire();
我也有一个wl.release()
电话onTerminate()
我看到的行为(带有日志记录)是即使屏幕变暗,应用程序也会继续运行(定期轮询服务器数据)。但是当我切换到另一个 forgraound 应用程序时,轮询将在几分钟内停止。
更新:我确实在清单文件中设置了所需的权限
<uses-permission android:name="android.permission.WAKE_LOCK" />