0

Мое приложение должно проверять каждые X мин. веб-контент, и я должен реализовать wakeLock, поскольку он должен работать, когда экран выключен, но в то же время я должен использовать AsyncTask, поскольку он использует сеть (которая запрещена в основном потоке).Справочная служба wakelock и нить

Что такое хороший метод, чтобы быть уверенным, что .release() будет называться?

Блок PostExecute не называется всегда (при наличии ошибки в doInBackground()), так что, наконец, в основном потоке.

ответ

0

Если вы используете Google Cloud Messaging, вы можете управлять с сервера, когда устройства запрашивают выборки данных сервера, используя определенный период Xmin. Ваше мобильное приложение будет лучше реагировать на обновленные данные сервера, и мы будем уменьшать нагрузку на сервер, чтобы загружать только при необходимости.

GCM: Начало работы http://developer.android.com/google/gcm/gs.html

При реализации GCM, сервер может послать отправки в синхронизации или сообщения с полезной нагрузкой на устройство. Просмотрите Pro's Con здесь (http://developer.android.com/google/gcm/adv.html)

В вашем мобильном приложении у вас будет класс extends GCMBaseIntentService, и вы получите звонок onMessage, внутри здесь вы можете делать запросы на сервер и выдавать уведомления.

@Override 
protected void onMessage(Context context, Intent intent) { 
    try { 
     conn = (HttpURLConnection) url.openConnection(); 
     conn.setDoOutput(true); 
     conn.setUseCaches(false); 
     conn.setFixedLengthStreamingMode(bytes.length); 
     conn.setRequestMethod("POST"); 
     conn.setRequestProperty("Content-Type", 
       "application/x-www-form-urlencoded;charset=UTF-8"); 
     // post the request 
     OutputStream out = conn.getOutputStream(); 
     out.write(bytes); 
     out.close(); 
     // handle the response 
     int status = conn.getResponseCode();    
... 
+0

Нет. Я не использую GCM. Наконец-то я нашел некоторые связанные вопросы (и ответы - я размещаю их ниже). –

 Смежные вопросы

  • Нет связанных вопросов^_^