我尝试设置JobIntentService并使用adb进行测试。
当我使用此命令时:
adb shell am startservice -a "com.example.package.action.DO_THING"
它产生错误:
Error: Requires permission android.permission.BIND_JOB_SERVICE
我的AndroidManifest.xml包含以下条目:
<service
android:name=".services.intents.IntentHandlerService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true">
<intent-filter>
<action android:name="com.example.package.action.DO_THING"/>
</intent-filter>
</service>
答案 0 :(得分:2)
@dataclass
class Favs:
fav_number: int = 80085
fav_duck: 'typing.Any' = object()
fav_word: str = 'potato'
与JobIntentService
一样,只能在应用内使用。您不能让其他应用与这些服务进行对话,也没有任何直接的JobService
选项。
(理论上,您可以与Android 4.4及更早版本上的其他应用与PendingIntent
对话,因为我不确定在未定义该权限时如何处理JobIntentService
,但我不会指望它)
对于IPC,您将需要使用其他东西。因此,例如,如果您希望android:permission="android.permission.BIND_JOB_SERVICE"
处理PendingIntent
,请创建一个广播JobIntentService
,其中明确PendingIntent
指向已注册的清单,并且让它将工作发布到Intent
。