android-从不同的程序包启动服务

我试图做一个项目,我有一个活动和来自不同软件包的一项服务.我把两个包都放在一个项目中.

我将活动放置在com.idris.activity中,并将服务放置在com.idris.activity.service中

我尝试像这样从MyActivity中的按钮侦听器调用MyService:

Intent myIntent = new Intent(getApplicationContext(), MyService.class);
                 myIntent.putExtra("extraData", "somedata");
                 startService(myIntent);

应用程序清单

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="idris.parental.monitor"
    android:versionCode="1"
    android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".MyActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service
            android:name=".MyService"
            android:enabled="true" />
    </application>
</manifest>

MyService无法启动,我该怎么办?

解决方法:

在清单中使用此命令:

<service
    android:name=".service.MyService"
    android:enabled="true" />

确保清单文件中的服务使用正确的软件包名称.如果MyService.java文件位于com.idris.activity.service软件包中,则不要使用:

<service android:name="com.idris.activity.service.MyService" />
上一篇:C++11中std::async的使用


下一篇:java-仅运行一次活动,然后始终运行主活动