如何以编程方式在设备中运行已安装应用程序的服务

时间:2015-02-02 06:19:41

标签: android android-service

我有一个运行服务的功能:

public ArrayList<String> getRunningServices() {

    ActivityManager activityMg = (ActivityManager)context.getSystemService(context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningServiceInfo> serviceList = activityMg.getRunningServices(100);
    ArrayList<String> serviceName = new ArrayList<String>();

 for (int i=0; i<serviceList.size(); i++) {
       ActivityManager.RunningServiceInfo currentService = serviceList.get(i);
       boolean serviceNam = currentService.started;
       if (serviceNam == true) {
           serviceName.add(currentService.service.getPackageName());
    }

     }

    return serviceName;

}

现在我想在这些服务停止时运行其中一个服务。

要运行已安装的应用,我必须像这段代码一样使用意图:

      Intent intent = context.getPackageManager().getLaunchIntentForPackage(nameOfPakage);
    context.startActivity(intent);

但是我想要运行这个应用程序或另一个应用程序的服务。

我有一个应用程序包的String名称,我想开始它的服务。

有可能吗?

1 个答案:

答案 0 :(得分:0)

您好,以下是从其他应用程序启动服务。

Intent intent = new Intent();
String pkg = currentService.service.getPackageName();
String cls = currentService.service.getPackageName() + "." + currentService.service.getClassName();
intent.setComponent(new ComponentName(pkg, cls));
startService(intent);