Xamarin.Forms - Android Activity 使用异步 OnCreate 方法

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 进行开发,MainActivityOnCreate 中的代码 LoadApplication(new App()); 会将生命周期事件挂接到 App 中的生命周期事件 PCL。

你没有post任何代码,我猜你把你的数据获取代码放在LoadApplication(new App());之后,然后就像你说的那样return,否则行为应该不同。

我建议您在 PCL 的 AppOnStart() 中调用您的任务,并一起使用 DependencyService 调用您的异步任务以从 PCL.