【发布时间】:2020-04-13 19:58:48
【问题描述】:
如果我在显示第一个视图之前从缓存中获取对象,则应用程序将只显示一个空白页面(在 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();
}
}
}
那么这里发生了什么,更重要的是 - 是否有解决方法或解决方法?
【问题讨论】:
-
你有做过什么调试吗?您是否已通过代码查看是否调用了 MainPage?是否有任何错误、异常或日志消息?
-
我花了一些时间调试。我看不到任何错误。 MainPage 正在构建中,
OnAppearing也在 MainPage 上被调用。