2014-01-08 1 views
4

У меня есть служба, которая должна загружать фотографии в фоновом режиме. Но когда я пытаюсь запустить его, он не запускается. В logcat я заметил, что получаю предупреждение Implicit intents with startService are not safe : Intent { .....}. Я уже трижды проверял, что строка действия в манифесте одинакова и с чего я начинаю. Мой код:
манифеста:Служба Android не работает с предупреждением

<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); 

ответ

5

Вы должны понимать скрытые и явные намерения.

Явное намерение означает, что вам нужно указать точный класс, с которого будет осуществляться обслуживание.

Ваш код должен быть похож на

Intent i = new Intent(); 
i.setClass(this, photosupload.services.PhtosUploadService.class); 
+0

Почему я не могу запустить его неявно? Я делаю то же самое в своем другом приложении, и он отлично работает – RCB

+1

Вы можете, но андроид дает предупреждение, если вы используете startervice. «Неявные намерения с помощью startService небезопасны» –

+0

Но он не запускается, у меня есть точки останова в 'onCreate' и in on' onStartCommand', но он никогда не попадает туда – RCB

0

Если вы хотите отправить неявное намерение услугу - смените на андроид: экспортироваться = «истина» в манифесте.