我遇到了问题,如果将FormsAppCompatActivity.OnCreate(Bundle bundle)
标记为异步有问题?我必须从 AWS DynamoDB 获取特定于用户的数据,并且之前需要从 Akavache 缓存中检索用户,以便使用 userId 进行查询。当然,我也可以将 userId 保存到本地设置或序列化整个用户对象以便能够同步检索它。
我也不希望在启动期间出现性能问题,因为使用 SQLite 的缓存肯定存在。唯一的问题是,要么我等待 Akavache 的GetObject<T>(string key)
,因此将所有OnCreate
内容标记为异步,要么我订阅返回的 Observable,以下方法将尝试在没有有效 userID 的情况下查询用户数据,因为 Observable 尚未返回。
由于您使用 XF 进行开发,因此OnCreate
MainActivity
中的代码LoadApplication(new App());
会将生命周期事件挂接到 PCL 中App
的生命周期事件。
您没有发布任何代码,我猜您将用于数据获取的代码放在LoadApplication(new App());
之后,然后正如您所说,它还没有返回,否则行为应该有所不同。
我建议您在 PCL 中以App
OnStart()
调用任务,并一起使用 DependencyService 调用异步任务以从 PCL 获取数据。