Intent intent = new Intent(this, CinepoxServiceRestarter.class);
intent.putExtra("appconfig", app().getAppConfig());
Bundle b = intent.getExtras();
if (b != null) {
if (b.getParcelable("appconfig") != null)
app().setAppConfig((AppConfigData) b.getParcelable("appconfig"));
}
밑에는 받는 쪽 코드고, 위에는 보내는 쪽 코드입니다.
받는 쪽도 보내는 쪽도 모두 서비스입니다. immotal service를 구현하면서 유지해야 할 데이터가 있어
Parcelable을 이용한 인텐트로 알람매니저를 사용하는데요.
인텐트가 브로드캐스트를 거쳐서 다시 서비스로 돌아오게 됩니다.
보내는 쪽에서 마샬링 할때는 아무 문제가 없는데,
받는 쪽에서 언마샬링 할때
03-19 13:25:45.866: E/AndroidRuntime(15939): Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@41988008: Unmarshalling unknown type code 7929953 at offset 692
03-19 13:25:45.866: E/AndroidRuntime(15939): at android.os.Parcel.readValue(Parcel.java:2032)
03-19 13:25:45.866: E/AndroidRuntime(15939): at android.os.Parcel.readMapInternal(Parcel.java:2225)
03-19 13:25:45.866: E/AndroidRuntime(15939): at android.os.Bundle.unparcel(Bundle.java:223)
03-19 13:25:45.866: E/AndroidRuntime(15939): at android.os.Bundle.getParcelable(Bundle.java:1165)
03-19 13:25:45.866: E/AndroidRuntime(15939): at com.busan.cw.clsp20120924.controller.CinepoxService.handleStart(CinepoxService.java:55)
03-19 13:25:45.866: E/AndroidRuntime(15939): at com.busan.cw.clsp20120924.controller.CinepoxService.onStartCommand(CinepoxService.java:47)
03-19 13:25:45.866: E/AndroidRuntime(15939): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2490)
03-19 13:25:45.866: E/AndroidRuntime(15939): ... 10 more
요러한 에러가 뜹니다.
에러 뜨는 라인의 코드는
Bundle b = intent.getExtras();
if (b != null)
if (b.getParcelable("appconfig") != null)
요렇습니다.
암만 구글링을 해도 모르겠습니다 ㅠㅠ Parcelable은 처음 써보는 거라 너무 어렵네요..