4

我有一项应该在后台上传照片的服务。但是当我尝试启动它时,它并没有启动。在 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);
4

2 回答 2

5

您需要了解隐式和显式意图。

显式意图意味着您需要指定将从中为意图提供服务的确切类。

您的代码应该类似于

    Intent i = new Intent();  
i.setClass(this, photosupload.services.PhtosUploadService.class);
于 2014-01-08T06:34:09.460 回答
0

如果您想向服务发送隐式意图 - 请在清单中更改为 android:exported="true"。

于 2017-01-23T09:46:31.180 回答