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 bekomme ich die (CSS) besuchte Geschichte eines Android WebView?
  • Ist Proguard garantiert, um die gleiche Mapping, wenn keine Quelle hat sich geändert?
  • Android Studio .2.2 und Gradle Paket existiert nicht
  • Android + Gradle: Bester Platz zum Festlegen von dynamischen ArchivenBaseName
  • VideoView Black Flash vor und nach dem Spielen
  • Android: Eine Klasse packbar machen
  • Dynamisch ändern Sie die Grenze einer Firebase Query Reference auf Android
  • Proguard Obfuskation brechen Simplexml
  • Wie kann ich eine Android-Applikation mit einem RFCOMM-Sockel auf einem Bluetooth-fähigen Arduino-Mikrocontroller richtig verbinden?
  • Wie Kopieren und Bearbeiten von Dateien in Android-Shell?
  • Welche API-Version für Android 2.3.6?
  • 24-Stunden-Uhr funktioniert nicht in dateformat android
  • 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.