Visualizzazione stampabile
-
intent & Observer
Ciao a tutti.
Sono nuovo ad Android anche se ho qualche esperienza di Java.
Sto riadattando un'aplicazione che ho scritto in java per Android. Sta andando tutto abbastanza bene ma mi sono scontrato con un problema:
ho una serie di oggetti 'Observable' che vengono rappresentati graficamente da classi 'Observer', e fin quì tutto normale... sotto certe condizioni devo far partire un'Intent di un classe 'Observer' ma non capisco come fare per registrarla sul suo oggetto 'Observable' corrispontente; inoltre devo passare all'Intent oggetti complessi come una Socket etc... Non so come fare, potete aiutarmi??
L'uso di classi Observable e Observer è efficace in android come in Java o mi conviene cambiare approccio?
Grazie
CSS
-
Dai un'occhiata ai contentprovider e i contentobserver / observable.
Dovrebbe esserci supporto nativo da parte di android per questi. Non ci ho mai messo mano direttamente ma avevo letto un paio di articoli.
Federico
-
Grazie per la risposta... ci guardo
-
Niente, non ne vengo a capo.
In pratica: ho un flusso di dati che arriva da una Socket, viene smistato da un handler ai vari oggetti 'Observable' che quando sono modificati in certi modi scatenano updateObservers che sono di norma le loro UI; ongi oggetto 'Observable' può avere più UI distinte o addirittura non averne affatto. Basta che ogni oggetto 'Observable' registri tutte le sue UI e il gioco è fatto!
Questa tecnica in Java funziona benissimo, è potente e molto flessibile.
Funziona bene anche in android ma solo all'interno dello stesso Intent.
Sembra non esserci modo di far arrivare l'istanza di un oggetto ad un Intent; se ho capito bene lo si può serializzare ed inviare all'Intent che però si ritrova con un copia, non con l'originale. Quindi se l'originale viene modificato questo non si rifletterà sull'oggetto contenuto nel'Intent.
Ho capito bene?
Mi sa che devo cambiare approccio... qualche suggerimento?
Grazie
\V/_ CarLo
-
Quote:
Originariamente inviato da
CSS
Niente, non ne vengo a capo.
In pratica: ho un flusso di dati che arriva da una Socket, viene smistato da un handler ai vari oggetti 'Observable' che quando sono modificati in certi modi scatenano updateObservers che sono di norma le loro UI; ongi oggetto 'Observable' può avere più UI distinte o addirittura non averne affatto. Basta che ogni oggetto 'Observable' registri tutte le sue UI e il gioco è fatto!
Questa tecnica in Java funziona benissimo, è potente e molto flessibile.
Funziona bene anche in android ma solo all'interno dello stesso Intent.
Sembra non esserci modo di far arrivare l'istanza di un oggetto ad un Intent; se ho capito bene lo si può serializzare ed inviare all'Intent che però si ritrova con un copia, non con l'originale. Quindi se l'originale viene modificato questo non si rifletterà sull'oggetto contenuto nel'Intent.
Ho capito bene?
Mi sa che devo cambiare approccio... qualche suggerimento?
Grazie
\V/_ CarLo
la sparo, visto che il problema delle istanze di classi passate come parametro che quindi non riflettono le modifiche è una condizione di Java:
Personalmente ho una classe statica che contiene le istanze che devono essere modificate da tutti. Tutti accedono, modificano ed elaborano quell'unica istanza.
In android fortunatamente l'activity che modifica la classe può essere una sola, ma se devi modificare qualche field dell'istanza statica tramite service... allora la cosa diventa multithread e la classe statica potrebbe non andare bene senza un sistema di locking che ti permette di rendere tutto thread-safe.