我有一项在后台运行的服务。
我可以从这项服务中获得什么信息?
是否有任何方法可以确定该应用程序处于活动状态,或者检查是否有任何应用程序正在运行?
可以检查屏幕是否处于活动状态?
服务可以做:
如果使用线程并且每隔2秒(根据需要)检查一次屏幕是否处于活动状态,或者不使用此功能:
@SuppressWarnings("deprecation")
public static boolean isIdle(Context context) {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
/*
* isDeviceIdleMode() is a very strong requirement and could cause a job
* to be never run. isDeviceIdleMode() returns true in doze mode, but jobs
* are delayed until the device leaves doze mode
*/
return powerManager.isDeviceIdleMode() || !powerManager.isInteractive();
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
return !powerManager.isInteractive();
} else {
return !powerManager.isScreenOn();
}
}