Xamarin.Forms - Android Activity with async OnCreate method



我遇到了问题,如果将FormsAppCompatActivity.OnCreate(Bundle bundle)标记为异步有问题?我必须从 AWS DynamoDB 获取特定于用户的数据,并且之前需要从 Akavache 缓存中检索用户,以便使用 userId 进行查询。当然,我也可以将 userId 保存到本地设置或序列化整个用户对象以便能够同步检索它。

我也不希望在启动期间出现性能问题,因为使用 SQLite 的缓存肯定存在。唯一的问题是,要么我等待 Akavache 的GetObject<T>(string key),因此将所有OnCreate内容标记为异步,要么我订阅返回的 Observable,以下方法将尝试在没有有效 userID 的情况下查询用户数据,因为 Observable 尚未返回。

由于您使用 XF 进行开发,因此OnCreateMainActivity中的代码LoadApplication(new App());会将生命周期事件挂接到 PCL 中App的生命周期事件。

您没有发布任何代码,我猜您将用于数据获取的代码放在LoadApplication(new App());之后,然后正如您所说,它还没有返回,否则行为应该有所不同。

我建议您在 PCL 中以AppOnStart()调用任务,并一起使用 DependencyService 调用异步任务以从 PCL 获取数据。

最新更新