2016-11-19 3 views
0

Я хочу, чтобы ежедневная ежедневная работа в службе работы в 6:00 утра выполняла определенную работу. так как я могу установить только setPeriod, я не смог найти способ выполнить или перенести задачу каждый день в 6 утра. Заранее спасибо.расписание PeriodicTask в 6 утра каждый день Android

private static long periodSecs = 7200L; //TODO: Set 6AM everyday 
    private static final String JOB_TAG = "NOTIFICATION_JOB"; 

    private void scheduleJob() { 
     Timber.i("scheduleJob"); 
     Task task = new PeriodicTask.Builder() 
       .setService(Job.class) 
       .setPeriod(periodSecs) 
       .setTag(JOB_TAG) 
       .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED) 
       .setPersisted(true) 
       .setUpdateCurrent(true) 
       .build(); 

     GcmNetworkManager.getInstance(this).schedule(task); 
    } 
+0

Рассматривали вы используете менеджер сигнализации или планировщик заданий? – HaroldSer

ответ

0

AlaraManager периодически выполняет вашу задачу для вас. использовать так же.

public void scheduleAlarm(View v) 
    { 
     //set time here 
     Long time = new GregorianCalendar().getTimeInMillis()+24*60*60*1000; 

     // Create an Intent and set the class that will execute when the Alarm triggers.   
     Intent intentAlarm = new Intent(this, AlarmReceiver.class); 

     // onReceive() method of this class will execute when the broadcast from your alarm is received. 

     // Get the Alarm Service 
     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 

     // Set the alarm for a particular time. 
     alarmManager.set(AlarmManager.RTC_WAKEUP, time, PendingIntent.getBroadcast(this, 1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT)); 
     Toast.makeText(this, "Alarm Scheduled for Tommrrow", Toast.LENGTH_LONG).show();  
    } 

AlarmReceiver Класс

public class AlarmReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 

     //perform what ever the operation you want 
     //when alarm triggers daily on your time 

    } 
} 
+0

, вы также можете сделать это с помощью TimerTask, но он не работает должным образом на некоторых устройствах и через некоторое время будет убит системой, если потребуется место. – Radhey