【问题标题】:How to check all the running services in android?如何检查android中所有正在运行的服务?
【发布时间】:2011-07-28 06:42:50
【问题描述】:

我想访问并查看有多少服务在后台运行。

我想要与我们可以访问的完全相同的功能

菜单->设置->应用程序->运行服务

在我们的安卓手机或标签上。谁能告诉我在 android 源代码中使用了哪些函数或类来提供此功能。

如果我可以通过任何方式访问我上面提到的后台运行服务的内置列表,那么请告诉我,因为它更好地使用内置而不是创建全新的。

【问题讨论】:

标签: android list service background


【解决方案1】:

查看此链接:

How to Access Android’s List of Running Apps in 6.0 Marshmallow and Above


在 Android 6.0 中哪里可以找到正在运行的服务,就像我之前提到的,在

Android 5.x 及以下,您可以通过跳转来了解发生了什么 设置 > 应用程序 > 运行。这显示了正在运行的进程和 服务,以及系统正在使用多少内存 (RAM) 和 应用程序,以及仍有多少可用。


要在 Marshmallow 中找到相同的菜单,您首先需要启用 开发人员选项。通过进入设置,然后进入关于手机来做到这一点。


在那里,找到软件信息部分 - 这将是一个单独的 在某些手机(三星、LG)上输入,但在其他手机上不输入,例如 Nexus 设备。你正在寻找内部版本号,所以你可能不得不戳 在你找到它之前大约一点。 被占用 来自三星 Galaxy S7 Edge,最后一个来自 Nexus 6P。 如您所见,构建位于两个不同的位置。



找到它后,点按它七次。你会看到一个吐司 通知让您知道在“您成为 开发商。”轻按七次后,将出现一个新菜单 在主设置菜单中的关于手机上方解锁。


返回设置,进入开发者选项。您应该看到“正在运行 服务”在这个菜单的下方——这就是你要找的。 一旦你点击“运行服务”,你应该会看到一个 熟悉的屏幕——它与 Lollipop 中的屏幕完全相同。就在一个 不同的地方。


【讨论】:

  • 我在寻找 Android 6,它帮助了我。
【解决方案2】:

这是一个完整的答案。

第 1 步。首先您需要声明和初始化一些变量:-

private static final String APP_DETAILS_PACKAGE_NAME = “com.android.settings”; // Here you need to define the  package name

private static final String SCREEN_CLASS_NAME = “com.android.settings.RunningServices”; // Here you need to define the class name but NOTICE!! you need to define its full name including  package name.

步骤 2. 实例化 Intent

Intent intent = new Intent();

步骤 3. 将操作设置为 ACTION_VIEW

intent.setAction(Intent.ACTION_VIEW);

步骤 3. 在 Intent 中设置类名,因为我们知道包可以有多个活动。所以 Intent 需要一些东西来匹配包名中的 Activity。

intent.setClassName(APP_DETAILS_PACKAGE_NAME,  SCREEN_CLASS_NAME); //Here you need to set package name as well as class name so it could refer to the Package and IntentFilter of the given Activity.

第 4 步。启动 Activity

context.startActivity(intent); // As soon as this line will be executed Running Service screen will be displayed as a foreground activity.

在上面的示例中,如果您想访问其他屏幕,请根据需要更改 APP_DETAILS_PACKAGE_NAME 和 SCREEN_CLASS_NAME。

我真的不知道这种方法是否被记录在案,但它对我来说就像魅力一样。

【讨论】:

  • 此方法是否适用于所有 android 版本或仅适用于 2.2 (Froyo) 以下,如果适用,您知道为 2.3+ 实现此方法的方法吗?谢谢。
  • 啊,好的,谢谢,我如何让它显示我的应用程序正在运行的进程/服务而不是所有服务?有任何想法吗?有可能吗?
【解决方案3】:

简单的步骤

  1. 在您的设备上打开开发模式
  2. 去开发设置并尝试找到“正在运行的服务”
  3. 因此您将获得运行服务列表

【讨论】:

    【解决方案4】:

    大概是在ActivityManager 上调用getRunningServices()。没有记录在案的 Intent 可以直接进入该屏幕。

    【讨论】:

    • 我刚刚在网上查了一下,市场上很少有像“高级任务管理器”这样一键直接访问该屏幕的应用程序,所以这意味着他们确实调用了与 android 完全相同的功能当我们点击运行服务时。
    • @Varundroid:很好,但没有文档记录或支持,因此您(和他们)不应该使用它。记录和支持的最接近的是ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS on android.provider.Settings
    【解决方案5】:

    您签入您的设备

    1- 转到移动设置 2-单击应用程序管理器 3- 向左滑动查看正在运行的应用程序

    您可以在这里找到正在运行的应用程序以及正在运行的服务,如附图所示:

    【讨论】:

    • Aleem,我的意思是编程。感谢您回答 6 岁的问题。干杯!
    猜你喜欢
    • 1970-01-01
    • 2013-03-08
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2012-04-09
    相关资源
    最近更新 更多