嗨:我想启动一个服务,该服务位于连接的图书馆项目中。所有相关的类都在库中。

该服务是从库中的活动调用的:

Intent serviceIntent = new Intent();
serviceIntent.setAction("org.example.library.MY_ACTION");
startService(serviceIntent);


在清单文件(在库和应用程序中)中都指出:

    <service android:name="org.example.library.SomeLibraryClass">
        <intent-filter>
            <action android:name="org.example.library.MY_ACTION" />
        </intent-filter>
    </service>


无法启动服务Intent {act = org.example.android.SomeLibraryClass(有其他功能)}:找不到

似乎Android在寻找应用程序中的类,而不是在库中。有人曾经有过这种行为吗?

最佳答案

调用库中定义的Intent时,需要指定应用程序的软件包:

Intent serviceIntent = new Intent();
serviceIntent.setAction("org.example.library.MY_ACTION");
serviceIntent.setPackage("org.example.application");
startService(serviceIntent);

10-05 19:50