Я разрабатываю приложение для Android, которое отслеживает некоторые вещи в фоновом режиме, пока приложение работает.Я новичок в Android, поэтому я попытаюсь описать, что я хочу сделать.
Настройка: MainActivity, TrackerActivity, TrackerService (служба содержит wakelock) и TrackerServiceWakeupReciever
Это выполняется, когда TrackerService закрывается.
public class TrackerServiceWakeupReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.example.android.TrackerService");
serviceIntent.putExtra("action", "checkSound");
context.startService(serviceIntent);
}
}
Код, который запускает Сервис из TrackerActivity:
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.example.android.TrackerService");
startService(serviceIntent);
При входе в приложение запускается MainActivity, затем, когда TrackerActivity получаетTrackerService запускается из MainActivity и запускается в onCreate of TrackerActivity.Служба работает ровно 10 секунд и закрывается.Затем TrackerServiceWakeupReciever снова запускает службу, и она снова запускается 10 с и выполняет цикл.
Почему он запускается только через 10 секунд?Я заметил, что если я быстро вернусь к MainActivity и нажму кнопку ожидания, служба продолжит работу.Даже когда устройство выходит из спящего режима, служба работает, как я хочу.
Как решить эту проблему?Использовали неделю, чтобы понять это.Я думаю, что это просто:)
Спасибо заранее.Martin