我可以获取Intent以按服务名称启动服务吗?

时间:2014-05-27 12:45:27

标签: android android-intent service

如果我只知道Service的ComponentName,是否有意图启动服务?以下代码片段可以获取所有正在运行的Services及其ComponentNames,但是如果我想绑定到Service,我需要一个Intent而不是ComponentName,那么如何获取Intent?顺便说一下,假设服务由另一个APP提供,并且不能由显式Intent启动。

ActivityManager activityManager = (ActivityManager) context
        .getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList = activityManager
        .getRunningServices(Integer.MAX_VALUE);

for (int i = 0; i < serviceList.size(); i++) {
    RunningServiceInfo serviceInfo = serviceList.get(i);
    ComponentName name = serviceInfo.service;

    ... ... do something
}

1 个答案:

答案 0 :(得分:0)

是的,您可以使用componentname和package name启动任何服务。

Intent intent=new Intent();
intent.setComponent(new ComponentName("service packagename", "service componentname"));
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);

多数民众赞成......