gpt4 book ai didi

Android:如何获取当前的前台 Activity (来自服务)?

转载 作者:IT老高 更新时间:2023-10-28 12:54:42 28 4
gpt4 key购买 nike

是否有一种原生的 android 方法可以从服务中获取对当前正在运行的 Activity 的引用?

我有一个在后台运行的服务,我想在事件发生时更新我当前的 Activity (在服务中)。有没有一种简单的方法可以做到这一点(就像我上面建议的那样)?

最佳答案

更新:这个no longer works从 Android 5.0 开始,包含其他应用的 Activity


这是一个使用 Activity 管理器的好方法。您基本上可以从 Activity 管理器中获取 runningTasks。它总是首先返回当前 Activity 的任务。从那里你可以得到topActivity。

Example here

有一种从 ActivityManager 服务获取正在运行的任务列表的简单方法。您可以请求手机上运行的任务的最大数量,默认情况下,首先返回当前 Activity 的任务。

一旦你有了它,你就可以通过从你的列表中请求 topActivity 来获得一个 ComponentName 对象。

这是一个例子。

    ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
componentInfo.getPackageName();

您的 list 需要以下权限:

<uses-permission android:name="android.permission.GET_TASKS"/>

关于Android:如何获取当前的前台 Activity (来自服务)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3873659/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com