Nella mia app, sto usando un adattatore di sincronizzazione dei contatti, ma ha molte informazioni che condivide con l'app principale. Ci sono delle impostazioni che l'adattatore ha bisogno di lavorare su proplery (come le informazioni di accesso e se l'utente cambia le impostazioni di sincronizzazione), quindi attualmente lo faccio girare nello stesso processo, e comunica con l'ap principale usando getApplicationContext()
, e poi ne ho alcune variabili condivise nello Application
che l'adattatore di sincronizzazione sta utilizzando durante il processo di sincronizzazione.In Android, una scheda di sincronizzazione dei contatti dovrebbe essere eseguita in un processo separato?
Ma nel training document e alcuni tutorial online, l'adattatore di esempio è impostato per essere eseguito nel proprio processo, utilizzando android:process=":sync"
nel file manifest. È necessario? E se viene eseguito in un processo separato, come posso comunicare di nuovo all'app principale?
Lo eseguirà in un processo separato per eliminare i rallentamenti causati quando è necessario sincronizzare un numero enorme di contatti? In questo momento sta succedendo per gli utenti che sincronizzano oltre 5000 contatti. – user496854
Per evitare rallentamenti, esegui la sincronizzazione in un [thread separato] (http://developer.android.com/guide/components/processes-and-threads.html#Threads), non è necessario immergersi nell'overhead del processo separato per questo motivo . –
Non è in esecuzione un adattatore di sincronizzazione in un thread separato piuttosto inutile? PreformSync uscirà mentre il thread è ancora in esecuzione, il che ucciderebbe il servizio e perderebbe il thread. Inoltre, l'adattatore di sincronizzazione segnerà la sincronizzazione come completata, ma in realtà non lo è e ciò potrebbe causare problemi importanti. – user496854