1

可能重复:
android:检查服务是否正在运行

我有一项服务可以执行我的操作,它将无限期地在后台运行。我想监视服务是否正在运行。所以,我想创建另一个服务来监控第一个。

是否有任何其他动作过滤器来广播,服务运行与否?

4

2 回答 2

0

你可以getRunningServices(int max)使用ActivityManager

ActivityManager actManager = // 获取活动管理器

int max = ??;

List<ActivityManager.RunningServiceInfo> runningServices = actManager.getRunningServices(max);

for(ActivityManager.RunningServiceInfo runningService : runningServices)
{

   boolean started = runningService.started;
}

注意:此方法仅用于调试或实现服务管理类型的用户界面。

于 2012-11-23T12:46:16.013 回答
0
Presumably, it is calling getRunningServices() on ActivityManager. There is no documented Intent to go straight to that screen.

第 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);

步骤 4. 开始活动

context.startActivity(intent);

在上面的示例中,如果您想访问一些不同的屏幕,然后根据您的需要更改 APP_DETAILS_PACKAGE_NAME 和 SCREEN_CLASS_NAME。

于 2012-11-23T12:50:39.233 回答