Я хочу проверить эффекты отключения экрана и режима сна на IntentService
.
Для этого я запускаю фон IntentService
на Android Marshmallow, отключаю эмулируемое зарядное устройство, устанавливаю эмулятор«разрядить» и выключить экран.Я не применяю какой-либо поминки.Тем не менее, мой IntentService никогда не прерывается.Он просто продолжает работать, и один onHandleIntent
выполняется за другим.Вместо этого я ожидаю, что когда я выключу экран или устройство перейдет в режим сна, IntentService
должен быть уничтожен.Это предположение не правильно?Мой эмулятор не имитирует сон / дрему должным образом или почему на мой IntentService
это не влияет?
public class ExampleService extends IntentService {
public static final String TAG = "IntentService";
public ExampleService() {
super("bla");
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate");
}
@Override
protected void onHandleIntent(@Nullable Intent intent) {
Log.d(TAG, "onHandleIntent");
String input = intent.getStringExtra("inputExtra");
runInBackground(input);
}
private void runInBackground(String input) {
for (int i = 0; i < 40; i++) {
Log.d(TAG, input + " " + i);
SystemClock.sleep(1000);
}
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
}
Я запускаю этот IntentService
с моего MainActivity
несколько раз, поэтому он работает около 30-60 мин :
public void startService(View v) {
String input = editTextInput.getText().toString();
Intent serviceIntent = new Intent(this, ExampleService.class);
serviceIntent.putExtra("inputExtra", input);
startService(serviceIntent);
}