我有一项应该在后台上传照片的服务。但是,当我尝试启动它时,它无法启动。在logcat中我注意到我收到了警告Implicit intents with startService are not safe : Intent { .....}
。我已经三倍检查了清单中的动作字符串是否相同以及我的开始。我的代码:
清单:
<service android:name=".photosupload.services.PhtosUploadService"
android:exported="false" android:process=":uploadPhotosServiceProcess">
<intent-filter>
<action android:name="com.yoovi.app.photosupload.services.action.START_UPLOAD" />
</intent-filter>
</service>
启动服务代码:
Intent i = new Intent(PhtosUploadService.ACTION_START_UPLOAD);
i.putExtra(PhtosUploadService.ALBUM_ID, albumID);
context.startService(i);
答案 0 :(得分:5)
您需要了解隐含和显式意图。
显式意图意味着您需要指定从中提供意图的确切类。
您的代码应与
类似 Intent i = new Intent();
i.setClass(this, photosupload.services.PhtosUploadService.class);
答案 1 :(得分:0)
如果您想向服务发送隐式意图 - 请在清单中更改为android:exported =“true”。