Как для телефона Android OS, я разрабатываю приложение, которое будет очищать определенную папку за определенный промежуток времени, скажем каждые 30 минут.Служба очистки файлов
Я могу запустить службу и очистить папку каждые 30 минут. У меня мало вопросов по этому поводу,
1.Service имеет onStartCommand, который будет запущен при запуске службы, могу ли я вызвать здесь функцию, в которой есть Handler, который запускается каждые 30 минут? Пример
public int onStartCommand(Intent intent, int flags, int startId){
cleanUpData();
return START_REDELIVER_INTENT;
}
public void cleanUpData()
{
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// call the function again
cleanUpData();
}
}, "30 mins");
}
Этот код выполняет итерацию cleanUpData каждые 30 минут. a. Это верно? b. Будет ли это мешать производительности? c. Должен ли я использовать отдельный поток, как упоминалось в многочисленных учебниках? d. Должен ли я использовать услугу после? Или есть другой метод?
- AlarmManager предоставляет запланированные повторные тревоги, но это не работает, когда телефон находится в спящем режиме. Я не хочу разбудить экран, так как он не требует какого-либо человеческого взаимодействия. Могу ли я игнорировать AlarmManager? Или у AlarmManager есть функции для запуска кода, даже когда телефон находится в спящем режиме, а телефон пробуждается?
Просьба предложить. Заранее спасибо!
Да. вы можете иметь отдельный метод внутри метода onStartCOmmand(). – HackerGK