Wie hört man den Fortschritt von Android SyncAdapter?

Ich erinnere mich an das Lesen über eine Broadcast-Empfänger-Schnittstelle vom Sync-Adapter oder einige ResultReceiver von Sync-Fortschrittsereignissen. Gibt es etwas in das SyncAdapter-Muster eingebaut oder ist es heimisch?

  • Wie kann ich den Bildschirm Leerlauf hören?
  • Entfernen Sie einen Zuhörer aus einer Ansicht in android
  • Android - rechts abbiegen | Gestenerkennung
  • Android Speech Speech Recognition: Wiederholtes Aufrufen von SpeechRecognizer.startListening () scheitert an JB 4.1.2
  • Benutzerdefinierter Event-Listener auf Android-App
  • Host ist null in NsdServiceInfo von NsdManager.DiscoveryListener.onServiceFound
  • In Android, wie nehme ich eine Aktion, wenn eine Variable ändert sich?
  • Handler oder Hörer. Was ist besser?
  • 2 Solutions collect form web for “Wie hört man den Fortschritt von Android SyncAdapter?”

    Was funktioniert:

    Die Methode, die in einer 2010 IO-Sitzung von 2010 vorgeschlagen wird, ist die Entwicklung von Android REST-Client-Anwendungen , um Spalten in Ihren ContentProvider als Tags zu setzen, um anzuzeigen, dass ein Datensatz abgerufen oder platziert wird usw. usw. Dies ermöglicht eine pro Sperre (oder andere visuelle Änderung) In deiner Benutzeroberfläche platziert werden. Sie können dies über einen benutzerdefinierten CursorAdapter tun, der eine ListView fährt. Ihr ContentProvider ist auf dem Haken, um die Flaggen nach Bedarf zu ändern.

    Was nicht:

    Sie können auch einen SyncStatusObserver verwenden – das ist ziemlich nutzlos, da es auf jede Änderung des Status reagiert, nicht nur Ihr spezifisches Konto / contentauthority Paar, und wirklich erzählt Ihnen nicht viel irgendwie anders als das eine Änderung aufgetreten ist. So können Sie nicht sagen, was synchronisiert wird, und Sie können nicht unterscheiden "Start des Sync-Ereignisses" von "Ende des Sync-Ereignisses". Wertlos. : P.

    Ich habe gerade einen Broadcast-Receiver von einem Sync-Adapter implementiert und es funktioniert wie Uhrwerk!

    Mit einem Receiver-Set als innere Klasse und rufen registerReceiver in onCreate und unregisterReceiver in onDestroy tat dies für mich.

    Da habe ich eine Strategie-Methode zu spawn und Abfrage eine Reihe von Threads, Alles, was ich am Anfang eines SyncAdapter laufen sind:

     Intent intent = new Intent(); intent.setAction(ACTION); intent.putExtra(SYNCING_STATUS, RUNNING); context.sendBroadcast(intent); 

    Und am Ende des Sync-Laufs habe ich:

     intent.putExtra(SYNCING_STATUS, STOPPING); context.sendBroadcast(intent); 

    In meiner Tätigkeit erkläre ich:

     onCreate(Bundle savedInstance){ super.onCreate(savedInstance); SyncReceiver myReceiver = new SyncReceiver(); RegisterReceiver(myReceiver,ACTION); } onDestroy(){ super.onPause(); unRegisterReceiver(myReceiver); } public class SyncReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); if (extras != null) { //do something } } } 

    Für dieses Szenario müssen Sie Ihren Empfänger nicht zur Manifestdatei hinzufügen. Nur so verwenden!

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.