我想测试IntentService
上的屏幕关闭和打ze模式的效果。
为此,我在Android棉花糖上启动背景IntentService
,停用仿真充电器,将仿真器设置为“正在放电”,然后关闭屏幕。
我没有应用任何唤醒锁。但是,我的IntentService永不中断。它只是不断运行,一个onHandleIntent
被另一个执行。
我所期望的是,当我关闭屏幕或设备进入休眠状态时,IntentService
应该被销毁。这个假设不正确吗?
我的模拟器不能正确模拟睡眠/打do睡,还是为什么我的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);
}
答案 0 :(得分:0)
我的模拟器不能正确模拟睡眠/打ze吗? IntentService不受影响?
看来您的仿真器没有转为打ze模式。
IntentService应该被销毁
不。服务将被暂停,但不会完全销毁
尝试以下步骤:
请参阅有关“打ze模式”和“待机”条件的官方文档 https://developer.android.com/training/monitoring-device-state/doze-standby