我该如何开始这是在不同的包中定义的服务? [英] How do I start a service which is defined in a different package?

查看:104
本文介绍了我该如何开始这是在不同的包中定义的服务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个应用程序,持斧在命名空间com.gtosoft.voyager,另一个是com.gtosoft.dash。从com.gtosoft.dash我想启动它在com.gtosoft.voyager定义的服务...

我想我需要一个意图,但什么ARG(S)我会传递给意向与startService踢它起飞前()?

如果他们是在同一个包,我可以只使用

 意图SVC =新的意图(SettingsActivity.this,VoyagerService.class);
startService(SVC);
 

舱单

摘录它定义了服务

 <应用机器人:图标=@可绘制/ voyagercarlogo机器人:标签=@字符串/ APP_NAME机器人:可调试=假>

    <提供机器人:名称=com.gtosoft.voyager.VoyagerCProvider
        机器人:当局=com.gtosoft.voyager/>

    <服务机器人:名称=。VoyagerService/>

    <活动机器人:SettingsActivityNAME =
            机器人:标签=旅行者
            机器人:configChanges =keyboardHidden |定位>

        <意向滤光器>
            <作用机器人:名称=android.intent.action.MAIN/>
            <类机器人:名称=android.intent.category.LAUNCHER/>
        &所述; /意图滤光器>
    < /活性GT;
 

解决方案

我会成立一个<意向滤光器> 上的服务,自定义操作,然后用它在你的意图启动或绑定到该服务。你可以看到这双客户一个很好的例子和服务的示例项目。

I have two apps, one runs in namespace com.gtosoft.voyager and the other is com.gtosoft.dash. From com.gtosoft.dash I would like to start up the service which is defined in com.gtosoft.voyager...

I think I need an intent, but what arg(s) would I pass to the intent before kicking it off with startService()?

If they were in the same package I could just use

Intent svc=new Intent (SettingsActivity.this,VoyagerService.class);
startService(svc);

Snippet of Manifest which defines the service

<application android:icon="@drawable/voyagercarlogo" android:label="@string/app_name" android:debuggable="false">

    <provider android:name="com.gtosoft.voyager.VoyagerCProvider" 
        android:authorities="com.gtosoft.voyager"/>

    <service android:name=".VoyagerService"/>

    <activity android:name=".SettingsActivity" 
            android:label="Voyager"
            android:configChanges="keyboardHidden|orientation">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

解决方案

I would set up an <intent-filter> on the service, with a custom action, and then use it in your Intent to start or bind to that service. You can see an example of that in this pair of client and service sample projects.

这篇关于我该如何开始这是在不同的包中定义的服务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆