1

我想获得我的应用程序的运行活动并调用其方法之一(我在服务内部)。我发现我需要这样的东西,但我无法解决我的问题。是否可以?

ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> procInfos = am.getRunningAppProcesses();
for (int j = 0; j < procInfos.size(); j++) {
    if (procInfos.get(j).processName.equals("com.android.pm")) {
        ...
    }
}
4

1 回答 1

0

根据您的评论:

问题是我想关闭的活动没有调用该服务。我有调用服务 S 的活动 B 的活动 A,我希望 S 关闭 A。

这是错误的做法。更好的做法是让 Activity A 注册一个广播接收器来监听特定的Intent. 当服务想要 A 完成时,它可以广播一个特定的Intent. 通过这种方式,您的服务与活动进行隐式通信,而无需对其进行引用,或者知道它是否正在运行。

于 2013-11-08T12:10:46.847 回答