Domanda

Vengo dal mondo web, sono nuovo ad Android.

Nel mondo Web, di solito passa l'ID delle cose, dalla "vista elenco" alla "Visualizzazione dettagliata", esempio:

URL: Messages/List --> Message/Detail?messageId=x
.

A Android, ho questa attività con tutti i miei messaggi: MessagesActivity
Sono recuperati dal DB (SQLite) e visualizzati in un elenco con un adattatore su misura.

Domanda: è inefficiente passare solo l'ID del messaggio (negli extra intento) da questa attività a MessageDetailActivity?

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id)
    {               
        Intent intent = new Intent(thisActivityContext, MessageDetailActivity.class);
        intent.putExtra("messageId", id); // inefficient? should pass object?
        startActivity(intent);
    }
.

al contrario di passare l'intero oggetto del messaggio. Lo sto chiedendo perché non sto trovando molto intuitivo L'utilizzo di un "tag" a mio avviso, che avrei dovuto lanciare ...

Inoltre, tenendo premuto tutti gli oggetti "Messaggio" nei tag userebbero un sacco di memoria forse

È stato utile?

Soluzione

Se il tuo oggetto è relativamente leggero, è possibile effettuare la sua classe implementazione serializzabile e passarla come EN extra alla messagediAlattività, se pensi che l'oggetto sia pesante (molti campi e oggetti annidati all'interno) dovresti passare l'ID e farlo andaredi nuovo dalla MessagetaAlactivity.

Tieni presente che il recupero di un record da SQLite su Android è veloce sulla maggior parte dei dispositivi, quindi è OK per prendere un paio di record sulla tua nuova attività (purché lo fai su un filo di sfondo per mantenere l'interfaccia utente daBlocco)

Comunque una cosa che ho trovato è che se è necessario modificare quell'oggetto su DB, ti risparmierai un sacco di problemi se recuperate tutta l'objet da DB ogni volta che viene creata qualsiasi attività, poiché in questo modoeviterai problemi di sincronizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top