-1

Ich bin auf die Fragen, wenn es ein Problem ist, FormsAppCompatActivity.OnCreate(Bundle bundle) als async zu markieren? Ich muss benutzerspezifische Daten von einer AWS DynamoDB abrufen und muss den Benutzer zuvor aus dem Akavache-Cache abrufen, um die userId abzufragen. Natürlich könnte ich auch die userId in den lokalen Einstellungen speichern oder das gesamte Benutzerobjekt serialisieren, um es synchron abzurufen.Xamarin.Forms - Android-Aktivität mit asynchronen OnCreate-Methode

Ich erwarte auch keine Leistungsprobleme beim Start, weil der Cache SQLite definitiv existiert. Das einzige Problem ist, dass ich entweder Akavaches GetObject<T>(string key) erwarte und daher alles bis auf OnCreate als async markiere, oder ich abonniere das zurückgegebene Observable und die folgenden Methoden versuchen, die Benutzerdaten ohne eine gültige userId abzufragen, weil das Observable nicht kehrte noch zurück.

Antwort

1

Da Sie XF verwenden für die Entwicklung, den Code LoadApplication(new App()); in OnCreate von MainActivity das Lifecycle-Ereignis App ‚s Lifecycle Ereignis in PCL einhaken.

Sie haben keinen Code geschrieben, ich denke, dass Sie Ihren Code für Daten holen nach LoadApplication(new App()); setzen, dann wie Sie sagten, dass es noch nicht zurück, sonst sollte das Verhalten anders sein.

Ich empfehle Ihnen, Ihre Aufgabe in der OnStart()App in PCL und zusammen verwenden DependencyService, um in Ihre asynchrone Aufgabe zum Abrufen von Daten aus PCL aufrufen.

+0

Ich habe verschiedene Start-Methoden in 'App' implementiert, die ich von' OnCreate' anrufe, basierend auf der Absicht, die ich empfange. Da ich den Benutzer immer als Teil des Login-Prozesses holen muss, musste ich die Async-Methode von allen Startmethoden aufrufen und sie daher sowohl als Async als auch als OnCreate markieren. Ich habe nicht darüber nachgedacht, stattdessen die OnStart-Methode zu verwenden und sie als Async zu markieren. Ich werde es versuchen - danke! :) –