我想访问并查看后台运行的服务数量和哪些服务正在运行。
我希望能够访问与我们在Android手机或平板电脑上通过以下方式访问的完全相同的功能:
菜单 -> 设置 -> 应用程序 -> 运行的服务
有人可以告诉我在Android源代码中使用了哪些函数或类来提供此功能吗?
如果有任何方式可以访问我上面提到的内置后台运行服务列表,请告诉我,因为使用内置服务列表对我来说更好,而不是创建全新的服务列表。
我想访问并查看后台运行的服务数量和哪些服务正在运行。
我希望能够访问与我们在Android手机或平板电脑上通过以下方式访问的完全相同的功能:
菜单 -> 设置 -> 应用程序 -> 运行的服务
有人可以告诉我在Android源代码中使用了哪些函数或类来提供此功能吗?
如果有任何方式可以访问我上面提到的内置后台运行服务列表,请告诉我,因为使用内置服务列表对我来说更好,而不是创建全新的服务列表。
请查看此链接:
如何在6.0 Marshmallow及以上版本中访问Android的正在运行应用程序列表
在Android 6.0中查找正在运行的服务
在Android 5.x及以下版本中,您可以通过跳转到“设置”>“应用程序”>“正在运行”来查看正在发生的事情。这将显示运行中的进程和服务,以及系统和应用程序正在使用多少内存(RAM),以及还剩多少可用空间。
这里是完整的答案。
步骤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.
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
第三步。在意图中设置类名,因为我们知道一个包中可能会有多个活动。所以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.
步骤四. 启动活动
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.provider.Settings
上的ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS
。 - CommonsWare