-1

如果將FormsAppCompatActivity.OnCreate(Bundle bundle)標記爲異步時出現問題,我正在運行該問題?我必須從AWS DynamoDB中獲取特定於用戶的數據,並且我需要先從Akavache緩存中檢索用戶,才能使用userId進行查詢。當然,我也可以將userId保存到本地設置或序列化整個用戶對象以便能夠同步檢索它。Xamarin.Forms - 使用異步OnCreate方法的Android活動

我也不期望在啓動過程中出現性能問題,因爲緩存使用SQLite肯定存在。唯一的問題是,我要麼等待Akavache的GetObject<T>(string key),因此,將所有內容標記爲OnCreate async,要麼訂閱返回的Observable,以下方法將嘗試查詢沒有有效userId的用戶數據,因爲Observable沒有還沒回來。

回答

1

由於您使用的XF的發展,在MainActivityOnCreate代碼LoadApplication(new App());將鉤生命週期事件在PCL App的生命週期事件。

您沒有發佈任何代碼,我猜你將代碼放在LoadApplication(new App());之後,然後就像你說的那樣,它還沒有返回,否則行爲應該是不同的。

我建議你打電話給在AppOnStart()你的任務在PCL和一起使用DependencyService打電話到你的異步任務從PCL獲取數據。

+0

我在'App'中實現了不同的啓動方法,我根據我收到的Intent調用'OnCreate'。因爲我總是需要將用戶作爲登錄過程的一部分來訪問,所以我需要從所有的啓動方法調用異步方法,因此,將它們標記爲異步以及「OnCreate」。我沒有想過只是使用'OnStart'方法,而是將其標記爲異步。我會嘗試 - 謝謝! :) –