- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
ActivityManager am = (ActivityManager)this.getSystemService(Activity.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(5);
这是我的主屏幕应用程序中用于获取正在运行的 Activity 的代码。
当长按 HOME
键时,会出现最近使用的应用程序列表(带有名为 RecentApplicationsActivity
的 Activity)。但它没有被列在上面代码的“任务”中。
为什么这行不通?
最佳答案
因为它不是一个 Activity 而是一个显示最近应用程序的对话框。它称为 RecentApplicationsDialog。您可以查看 AOSP 中的代码。
此对话框由 WindowManagerService 管理的 PhoneWindowManager 处理。
private void handleLongPressOnHome() {
if (mLongPressOnHomeBehavior < 0) {
mLongPressOnHomeBehavior
= mContext.getResources().getInteger(R.integer.config_longPressOnHomeBehavior);
if (mLongPressOnHomeBehavior < LONG_PRESS_HOME_NOTHING ||
mLongPressOnHomeBehavior > LONG_PRESS_HOME_RECENT_SYSTEM_UI) {
mLongPressOnHomeBehavior = LONG_PRESS_HOME_NOTHING;
}
}
if (mLongPressOnHomeBehavior != LONG_PRESS_HOME_NOTHING) {
performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
sendCloseSystemWindows(SYSTEM_DIALOG_REASON_RECENT_APPS);
// Eat the longpress so it won't dismiss the recent apps dialog when
// the user lets go of the home key
mHomeLongPressed = true;
}
if (mLongPressOnHomeBehavior == LONG_PRESS_HOME_RECENT_DIALOG) {
showOrHideRecentAppsDialog(RECENT_APPS_BEHAVIOR_SHOW_OR_DISMISS);
} else if (mLongPressOnHomeBehavior == LONG_PRESS_HOME_RECENT_SYSTEM_UI) {
try {
IStatusBarService statusbar = getStatusBarService();
if (statusbar != null) {
statusbar.toggleRecentApps();
}
} catch (RemoteException e) {
Slog.e(TAG, "RemoteException when showing recent apps", e);
// re-acquire status bar service next time it is needed.
mStatusBarService = null;
}
}
}
用来显示这个Dialog的Context不属于任何普通任务,而是使用系统上下文来显示这个Dialog。
关于android - 为什么 getRunningTasks 没有将 RecentApplicationsActivity 识别为正在运行的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23562953/
Android studio 给我一些问题。我明确声明了 android. permission.GET_TASKS 在 list 中。但它仍然关闭应用程序。错误: Caused by: java.l
getRunningTasks 在 LOLLIPOP 中已弃用。您必须使用 UsageStatsManager 才能获取前台应用程序的包名称。我已经在 Android 6.0 上测试过,一切正常。 问
我已经完成了这个question还有这个question .但是借助这个 library我现在可以使用以下代码获取前台任务列表。 if (Build.VERSION.SDK_INT taskInfo
我在我的一个应用程序中使用 getRunningTask API 来查找前台应用程序。自 Lollipop 以来,此 API 已被弃用。弃用之后,我更喜欢 getRunningAppProcess A
如果您想要“在顶部”获取 Activity ,您可以在 ActivityManager 上调用 getRunningTasks(1),您将获得类似于 com.google 的内容。 result.To
我正在 android 中处理推送通知,我正在使用以下方法显示通知,但问题是现在 ActivityManager.getRunningTasks(1);正在被弃用。从一个stackoverflow问题
ActivityManager am = (ActivityManager)this.getSystemService(Activity.ACTIVITY_SERVICE); List tasks =
在 Android L 中,Google 已禁用 getRunningTasks。现在它只能返回自己的应用程序任务和主页启动器。我无法再获得其他应用程序任务。我们的应用需要该方法来确定当前的热门应用。
据充分证明,getRunningTasks 现在在 Android L 中已被弃用。我用它来获取热门 Activity ,这是我的应用程序的一个重要功能。尽管尚未完成,但一位 Google 员工已 p
本文整理了Java中io.druid.indexing.overlord.ZkWorker.getRunningTasks()方法的一些代码示例,展示了ZkWorker.getRunningTasks
正如您在下面的代码中看到的那样,我将目标 api 设置为 18,并且我运行了进程 getRunningTasks,但它给了我一个错误并关闭了我的应用程序。 @TargetApi(18) public
我是一名优秀的程序员,十分优秀!