我有一个函数来获取正在运行的服务:
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 intent = context.getPackageManager().getLaunchIntentForPackage(nameOfPakage);
context.startActivity(intent);
但我只想运行这个应用程序或另一个应用程序的服务。
我有一个应用程序包的字符串名称,我想启动它的服务。
这可能吗?
最佳答案
您好,下面是从另一个应用程序启动服务。
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);
关于android - 如何以编程方式在设备中运行已安装应用程序的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28272122/