我需要在用户在一段时间内打开其他应用时将其锁定,但我不想实现一项服务,该服务会在每一秒后检查哪个应用程序被打开并相应地锁定。我想要的是,不知何故,Android会播放有效的应用信息。
是否有可能,如果可以,怎么样?
答案 0 :(得分:1)
调用ActivityManager.getRunningAppProcesses()
,它会显示正在运行的app的列表。如果您想查看详细信息,请遍历ActivityManager.RunningAppProcessInfo
个对象。
您还可以通过以下方式检查您的应用是否处于后台:
public static boolean isAppIsInBackground(Context context) {
boolean isInBackground = true;
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) {
List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
for (String activeProcess : processInfo.pkgList) {
if (activeProcess.equals(context.getPackageName())) {
isInBackground = false;
}
}
}
}
} else {
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
if (componentInfo.getPackageName().equals(context.getPackageName())) {
isInBackground = false;
}
}
return isInBackground;
}
答案 1 :(得分:0)
我想要的是,不知何故,Android将使用有效的应用信息进行广播。
那不存在。