У меня есть служба, которая запускается в отдельном процессе:
<service android:name=".services.UploadService"
android:process=":UploadServiceProcess" />
И я могу успешно выполнить привязку к ней с помощью bindService ( ). Моя проблема возникает, когда я пытаюсь отправить сообщение, вызывая Messenger.send ():
service.send(Message.obtain(null, UploadService.MESSAGE_UPLOAD_REQUEST, uploadRequest));
, где uploadRequest - это настраиваемый объект, реализующий Parcelable
<service android:name=".services.UploadService"
android:process=":UploadServiceProcess" />
И я могу успешно выполнить привязку к нему с помощью bindService (). Моя проблема возникает, когда я пытаюсь отправить сообщение, вызывая Messenger.send ():
service.send(Message.obtain(null, UploadService.MESSAGE_UPLOAD_REQUEST, uploadRequest));
, где uploadRequest - это настраиваемый объект, реализующий Parcelable
<service android:name=".services.UploadService"
android:process=":UploadServiceProcess" />
И я могу успешно выполнить привязку к нему с помощью bindService (). Моя проблема возникает, когда я пытаюсь отправить сообщение, вызывая Messenger.send ():
service.send(Message.obtain(null, UploadService.MESSAGE_UPLOAD_REQUEST, uploadRequest));
, где uploadRequest - это настраиваемый объект, реализующий Parcelable
открытый класс UploadRequest реализует Parcelable {
публичный файл;
общедоступное логическое значение deleteOnUpload;
public UploadRequest(File file, boolean deleteOnUpload) {
this.file = file;
this.deleteOnUpload = deleteOnUpload;
}
private UploadRequest(Parcel in) {
this.file = new File(in.readString());
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.file.getPath());
}
public static final Parcelable.Creator<UploadRequest> CREATOR = new Parcelable.Creator<UploadRequest>() {
public UploadRequest createFromParcel(Parcel in) {
return new UploadRequest(in);
}
public UploadRequest[] newArray(int size) {
return new UploadRequest[size];
}
};
}
Я установил точку останова в своем сервисе handleMessage, но мое приложение никогда не достигает точки останова. Однако, если вместо использования моего пользовательского объекта UploadRequest я отправлю значение null, я доберусь до точки останова handleMessage, как и ожидал, но, очевидно, я ничего не могу сделать в этот момент. Я проверил, что file.getPath () при вызове writeToParcel возвращает ненулевую строку. Это наводит меня на мысль, что в моем классе UploadRequest что-то не так, но после поиска в Google я не вижу ничего плохого в моем классе. Есть идеи?