如果我在显示我的第一个视图之前从缓存中获取一个对象,那么应用程序将只显示一个空白页(在 Android 上,没有测试其他平台)。如果我锁定屏幕并解锁它,那么我的视图就会显示出来。重现非常简单:
- 创建新的 Xamarin.Forms 应用(我为此示例选择了选项卡式布局)。
- 将 akavache nuget 包添加到所有项目。
- 中
App.xaml.cs
,在设置属性之前初始化akavache并获取一个对象MainPage
。 - 启动应用程序 - 将是完全白屏。
- 锁屏,解锁-界面将显示。这部分似乎只适用于我的实体手机,而不是模拟器。
App.xaml.cs
这是一个将重现该问题的示例。
using System.Reactive.Linq;
using Akavache;
using Xamarin.Forms;
using AkavacheTest.Services;
using AkavacheTest.Views;
namespace AkavacheTest
{
public partial class App : Application
{
public App()
{
InitializeComponent();
DependencyService.Register<MockDataStore>();
}
protected override async void OnStart()
{
Akavache.Registrations.Start("Test");
var test = await BlobCache.LocalMachine.GetOrFetchObject("Settings", async () => "New");
MainPage = new MainPage();
}
}
}
那么这里发生了什么,更重要的是 - 是否有解决方案或解决方法?