So wird eine ArrayList mit benutzerdefinierten Objekten in einem Bundle gesendet

Ich habe eine Anwendung, die mithilfe eines Dienstes alle x Sekunden eine ArrayList mit benutzerdefinierten Objekten (MyObject) erstellt. Ich möchte dann, dass meine Aktivität diese ArrayList erhält.

Ich plane derzeit, dass der Service jedes Mal eine Nachricht an den Handler der Aktivität sendet, wenn die Abfrage nach den Daten abgeschlossen ist. Ich möchte, dass die Nachricht an den Handler die ArrayList von MyObjects enthält.

Wenn ich die Methode in der Aktivität erstellte, um diese ArrayList aus der Nachricht zu entfernen, bemerkte ich, dass dies nicht möglich war.

Wenn ich es versucht hätt

msg.getData().getParcelableArrayList("myObjects")

Dann erwartete die Methode, an die ich es weitergab, dass eine ArrayList es nicht akzeptieren würde. Wenn ich versucht habe, die Ergebnisse zu übertragen:

(ArrayList<MyObject>)msg.getData().getParcelableArrayList("myObjects")

Ich habe den Fehler erhalten:Cannot cast from ArrayList<Parcelable> to ArrayList<MyObject>

MyObject implementiert Parcelable, und ich habe erfolgreich eine ArrayList von meinem Service an meine Aktivität gesendet, indem meine Aktivität eine Methode für den Service aufruft, um sie abzurufen. Ich versuche jedoch zu verhindern, dass meine Aktivität meinen Dienst für diese Daten abfragt.

1) Wie kann ich eine ArrayList innerhalb des Bundles in einer Nachricht an den Handler senden?

2) Gibt es ein anderes Modell, das ich verwenden sollte, damit mein Service die Daten in meiner Aktivität aktualisiert, die möglicherweise sichtbar sind oder nicht? Ich möchte immer, dass die Daten in meiner Aktivität die neuesten aus dem Service sind.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage