2017-01-16 16 views
0

Я пишу приложение, которое необходимо периодически (около 15 минут) загружать данные JSON с сервера в фоновом режиме и уведомлять пользователя с уведомлением.Как запустить периодическую задачу в android

У меня нет большого опыта работы с кодированием android, и я спрашиваю, как я должен делать это правильно и с наилучшими методами кодирования?

Мне не нужна слишком большая точность, AlarmManager с неточным повторением должен работать отлично. Я знаю, как использовать BroadcastReceiver для получения BOOT_COMPLETE и запускать сервис. Однако я не знаю, как настроить AlarmManager для запуска определенных действий в службе, и если я должен сделать это таким образом? Я не хочу использовать механизмы андроида, которые не были предоставлены.

+1

Похоже, вы на правильном пути уже, попробуйте посмотреть на https://guides.codepath.com/android/Starting-Background-Services#using-with -alarmmanager-for-периодические задачи – hibob

+0

@hibob большое спасибо. Это именно то, что мне нужно. – darkanzali

ответ

0

Используйте AsyncTask для получения информации с сервера. В OnReceive методе класса Receiver создать новый объект AsyncTask и выполнить его, как показано ниже:

private class GetContent extends AsyncTask<String,Void,String> // Assume class name 
extras = extras.getString("json"); 
GetContent().execute(extras); 

В функции по умолчанию AsyncTask doInBackground, retrive данные и вернуть JSON. В другой функции по умолчанию onPostExecute, создайте объект NotificationCompat.Builder и сообщите об этом.

0

Используйте класс TimerTask:

private TimerTask timerTask; 
private final long PERIOD_TIME=1000 * 60 * 15; //15min 

@Override 
public void onCreate() { 

Timer timer = new Timer(); 

timerTask = new TimerTask() { 
    @Override 
    public void run() { 
    //Your request JSON 
    } 
    }; 

    timer.scheduleAtFixedRate(timerTask, 0, PERIOD_TIME); 
} 

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

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