问题标签 [activity-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - “I/ActivityManager: Displayed...activity...+850ms”由什么组成?
我正在尝试改善我的应用活动的显示时间。
我正在使用 logcat 来跟踪我的活动显示时间。
下面是一个 logcat 输出的例子:
I/ActivityManager(1097): Displayed com.example.myapp/com.example.myapp.activity.TutorialActivity: +850ms (total +1s503ms)
有人可以告诉我活动经理如何得出这是显示活动所需的时间吗?
这段时间会发生什么,这段时间考虑了什么?
“正常时间”和“总时间”有什么区别?
我试图找到有关此事的材料,但没有成功..
提前致谢!
android - Android 中的 libprocessgroup 是如何工作的?
假设一个应用程序进程由 zygote 启动,PID 为 1234。当应用程序启动时,PID:1234 分叉另一个进程,例如 PID:1300。当我退出应用程序时,PID:1234 被信号 9(SIGKILL )。PID: 1300 然后成为孤立进程并被 init 进程 (PID: 1) 采用。很快,libprocessgroup 也会触发并杀死 PID: 1300(作为 PID: 1234 的进程组的一部分)。这是如何触发的?换句话说,libprocessgroup 什么时候突然介入清理剩余的进程?
android - 通知按钮后返回原始活动
我写了一个应用程序,它会通过alarmIntent 每隔一段时间显示一个通知。用户单击通知并进入活动。在此活动中执行某些操作后,他应该在单击通知之前按一个按钮返回到他所在的原始应用程序(如浏览器或主屏幕等)。我的问题是,用户总是返回到我的应用程序的主要活动。我该如何改变呢?
谢谢!
android - Android M:如何获取当前前台活动包名称(来自服务)
在 Android L 上很容易从 ActivityManager 服务中获取正在运行的任务列表,并且首先返回当前活动的任务。但它不再适用于 Android M,返回列表仅包含我的应用程序任务。有什么办法解决吗?
我的代码:
java - 如何杀死android中的其他前台活动?
我想杀死其他(不是它自己)前台活动/服务。我检查了一些关于杀死应用程序的方法。
ActivityManager.restartPackage(String packageName)
自 android 2.2 起已弃用。所以我不能用这个方法。ActivityManager.killBackgroundProcesses(String packageName)
我认为它只会杀死后台活动。但我想使用 startForeground() 终止前台服务。
有什么方法可以杀死其他前台活动/服务吗?
android - 如何在android程序中获取进程启动的原因?
我可以看到一些这样的日志:
所以,我想知道,我怎样才能在这个过程中获得活动的类名
android - 使用 activityManager.getRunningAppProcesses() 获取(真实)前台进程
我正在尝试确定用户当前可见的应用程序。为此,我使用该activityManager.getRunningAppProcesses()
方法。
我知道 Android 5.1.1 不支持该方法 - 这没关系。
一开始它就像魅力一样,我正在遍历 RunningAppProcessInfos 列表并检查其重要性。
tl; dr获取当前前台进程并防止误报的正确方法是什么?列表的顺序是如何完成的 - API 说它没有指定。有没有办法正确订购它们?
我做了什么:
不幸的是,ActivityManager 返回的列表在每个设备上都不同。一些设备返回多个重要性为 100(即 FOREGROUND)的信息,即使该进程当前不可见。
这导致了我有很多误报的问题。例如,我用 facebook 对其进行了测试,并在每次 facebook 处于前台时创建了一个 toast。我切换到主页,所以我的启动器应该是前台进程。大约 10 秒钟后,facebook 再次以 FOREGROUND 重要性出现在列表中(它既不打开也不可见),我得到了误报。
我认识到某些设备按最近的进程排序列表。所以我决定尝试以下方法:
使用appProcesses.get(0); 我只检查第一个元素,错误就消失了。不再有误报。
但是,现在在某些设备上,我根本无法获得前台进程。因为他们不会以任何方式对列表进行排序。例如,一些 4.2 索尼智能手机就是其中的一部分。我得到了列表,但当前真正可见的进程在索引 11 左右。
我不知道该怎么做才能获得当前的前台进程,而不会出现误报。
获取当前前台进程并防止误报的正确方法是什么?列表的顺序是如何完成的 - API 说它没有指定。有没有办法正确订购它们?
谢谢!
android - 如何获取当前正在运行的所有任务
我想获取在 android 中运行的所有任务。我在 ActivityManager 中找到了 getRunningTasks,但从 android-5.0 开始,getRunningTasks 可能不会提供所有任务(在我的情况下,它提供主屏幕和我的应用程序)。
此外,是否可以找到用户当前正在与之交互的任务?
任何帮助将不胜感激。
谢谢。
编辑:我正在使用以下代码。但它只给了我一个进程(那是我的应用程序)。即使我打开其他应用程序也没有显示它们。我在 One Plus2 上运行它。