2013-08-30 3 views
1

У меня есть приложение Android Phonegap (3.0), которое необходимо периодически опросить веб-API для данных.
Я хотел бы сохранить его в живых, даже когда он перемещается на задний план. Я последовал общий совет в this post и реализовал WakeLock с PARTIAL_WAKE_LOCK уровня, который создается в методе OnCreate приложенияWakeLock не поддерживает приложение Phonegap active

 pm = (PowerManager)this.getSystemService(Context.POWER_SERVICE); 
     wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, org.apache.cordova.CordovaActivity.TAG); 

     wl.acquire(); 

У меня также есть призыв к wl.release() в onTerminate()

Поведения я вижу (с logging) заключается в том, что приложение будет продолжать работать (периодически проверять данные сервера), даже когда экран становится темным. Но когда я переключусь на другое приложение для прокрутки, опрос остановится на несколько минут.

Update: У меня есть необходимое разрешение, установленное в файле манифеста

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
+1

У меня под впечатлением, что wakelocks предназначены для того, чтобы держать устройство в активном состоянии, пока ваше приложение работает на переднем плане, а не для того, чтобы поддерживать его в течение какого-то времени, пока оно находится в фоновом режиме и другие приложения находятся на переднем плане. Фоновая служба может быть способом сохранить ваше приложение в фоновом режиме в течение длительного времени (и использовать меньше батареи, чем wakelock) – DaveAlden

ответ

0

У вас есть необходимый набор permission в манифесте?

<uses-permission android:name="android.permission.WAKE_LOCK" /> 

Phonegap plugin Powermanagement

+0

Да. Забыл упомянуть, что –

+0

сейчас это эта работа. ??? –

+0

Здравствуйте, @RonHarlev, вы смогли добиться результатов. Я также пытаюсь сделать свое приложение, когда мой телефон находится в спящем режиме. Мне нужно просыпаться по телефону, когда происходит событие. Я пробовал wakelock, но он не разбудил телефон. –