Как сделать 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. По-крайней мере, моя проблема заключалась в этом.
Комментариев нет:
Отправить комментарий