ich einen Alarm App entwickle und ich versuche, für die Einrichtung eines AlarmPassing Reich Objekt zu einem anstehenden Absicht Alarmmanager
Bedingt durch das Reich Objekt Alarmmanager weitergeben müssen: java.lang.RuntimeException: Parcel begegnet IOException Schreiben serialisierbares Objekt (name = io.realm.AlarmRealmProxy) bei android.os.Parcel.writeSerializable (Parcel.java:1527) bei android.os.Parcel.writeValue (Parcel.java:1475) bei android .os.Parcel.writeArrayMapInternal (Parcel.java:724) bei android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1408) bei android.os.Bundle.writeToParcel (Bundle.java:1157) bei android.os.Parcel.writeBundle (Parcel.java:764) bei android.content.Intent.writeToParcel (Intent.java:8687) bei android.os.Parcel.writeTypedArray (Parcel.java:1307) bei android.app.ActivityManagerProxy.getIntentSender (ActivityManagerNative.java:4653) bei android.app.PendingIntent.getBroadcastAsUser (PendingIntent.java:562) bei android. app.PendingIntent.getBroadcast (PendingIntent.java:545) bei in.kka.physiotherapy.model.Alarm.schedule (Alarm.java:143) bei in.kka.physiotherapy.service.A larmService.onStartCommand (AlarmService.java:99) bei android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3326) bei android.app.ActivityThread.-wrap21 (ActivityThread.java) bei android.app.ActivityThread $ H .handleMessage (ActivityThread.java:1582) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:154) bei android.app.ActivityThread.main (ActivityThread.java:6119) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:886) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776) Verursacht durch: java.io.NotSerializableException: io.realm.AlarmRealmProxy $ AlarmColumnInfo bei java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java : 1224) bei java.io.ObjectOutputStream.defaultWriteFields (ObjectOutputStream.java:1584) bei java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1549) bei java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1472) bei java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1218) bei java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:346) bei android.os.Parcel.writeSerializable (Parcel.java:1522) bei android.os.Parcel.writeValue (Parcel.java:1475) bei android.os.Parcel.writeArrayMapInternal (Parcel.java:724) bei android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1408) bei android.os.Bundle.writeToParcel (Bundle.java:1157) bei android.os.Parcel.writeBundle (Parcel.java:764) bei android. content.Intent.writeToParcel (Intent.java:8687) bei android.os.Parcel.writeTypedArray (Parcel.java:1307) bei android.app.ActivityManagerProxy.getIntentSender (ActivityManagerNative .java: 4653) bei android.app.PendingIntent.getBroadcastAsUser (PendingIntent.java:562) bei android.app.PendingIntent.getBroadcast (PendingIntent.java:545) bei in.kka.physiotherapy.model.Alarm.schedule (Alarm.java:143) bei in.kka.physiotherapy.service.AlarmService.onStartCommand (AlarmService.java:99) bei android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3326) bei android.app.ActivityThread. -wrap21 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1582) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:154) bei android.app.ActivityThread.main (ActivityThread.java:6119) bei java.lang.reflect.Method.invoke (native Methode) bei com .android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:886) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776)
Hier ist mein Code meine Klasse implementiert Serializable, aber ich bin nicht in der Lage, die Absicht extra zu übergeben, ich bekomme Fehler hier myIntent.putExtra ("Alarm", dies);
public void schedule(Context context) {
Realm realm = Realm.getDefaultInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
setAlarmActive(true);
}
});
Intent myIntent = new Intent(context, AlarmServiceBroadcastReciever.class);
myIntent.putExtra("alarm", this);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, myIntent,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, getAlarmTime().getTime(), pendingIntent);
}
Danke so viel, es hat gut funktioniert –
@KrishnaBN cool, überprüfen Sie auch die bearbeitete Antwort über das Schließen der Realm Instanz – maciekjanusz
Sie sollte Objekte überhaupt nicht passieren. Übergeben Sie stattdessen die Objekt-ID und holen Sie sie aus dem Realm im Service –