In meiner App verwende ich einen Kontakt-Sync-Adapter, aber es hat viele Informationen, die es mit der Haupt-App teilt. Es gibt Einstellungen, die der Adapter properly benötigt (wie Login-Informationen und wenn der Benutzer irgendwelche Sync-Einstellungen ändert), so dass ich es derzeit im gleichen Prozess laufen lasse, und es kommuniziert mit dem Haupt-ap mit getApplicationContext()
, und dann habe ich einige shared Variablen in der Application
, die der Sync-Adapter während des Synchronisierungsprozesses verwendet.Soll in Android ein Kontaktsynchronisierungsadapter in einem separaten Prozess ausgeführt werden?
Aber in der training document, und ein paar Tutorials online, ist der Beispieladapter eingerichtet, um in einem eigenen Prozess zu laufen - es verwendet android:process=":sync"
im Manifest. Ist das notwendig? Und wenn es in einem separaten Prozess läuft, wie kann ich zurück zur Haupt-App kommunizieren?
Wird es in einem separaten Prozess ausgeführt, um die Verlangsamungen zu beseitigen, die entstehen, wenn eine große Anzahl von Kontakten synchronisiert werden muss? Im Moment passiert das für Benutzer, die 5000+ Kontakte synchronisieren. – user496854
Um Verlangsamungen zu vermeiden, führen Sie einfach die Synchronisierung in einem [separaten Thread] aus (http://developer.android.com/guide/components/processes-and-threads.html#Threads). Aus diesem Grund müssen Sie nicht in einen separaten Prozessoverhead einsteigen . –
Ist kein Sync-Adapter in einem separaten Thread ziemlich sinnlos? PreformSync wird beendet, während der Thread noch ausgeführt wird, wodurch der Dienst beendet wird und der Thread verloren geht. Darüber hinaus wird der Sync-Adapter die Synchronisierung als abgeschlossen markieren, aber es ist wirklich nicht, und das könnte zu großen Problemen führen. – user496854