Страницы

Поиск по вопросам

пятница, 19 октября 2018 г.

Service не работает когда экран телефона выключен

Как сделать android.app.Service так, чтобы даже при выключенном экране телефона он работал? Вот его исходный код:
public class S extends Service {
@Override public void onStart(Intent i1, int i2) { new Timer().schedule(new TimerTask() { @Override public void run() { //..........// return; } }, 60000, 60000); }
@Override public IBinder onBind(Intent i1) { return null; }
}
Запускаю его так:
public class Main extends AppCompatActivity {
Intent i1;
@Override protected void onCreate(Bundle i1) { super.onCreate(i1); setContentView(R.layout.layout_main); this.i1 = new Intent(this, S.class); startService(this.i1); return; }
@Override protected void onDestroy() { stopService(this.i1); super.onDestroy(); return; }
}
В теории сказано: «В отличие от Activity службы в Android работают как фоновые процессы... Служба может продолжать работать до тех пор, пока кто-нибудь не остановит её или пока она не остановит себя сама.». Но как только я отключаю экран телефона, служба перестаёт работать. Она возобновляет свою работу только после того, как я разблокирую телефон. Как исправить эту ошибку?


Ответ

Для того, чтобы Service работал вне зависимости от экрана, необходимо его запускать не из под Activity, а, к примеру, из BroadcastReceiver. По-крайней мере, моя проблема заключалась в этом.

Комментариев нет:

Отправить комментарий