Xamarin Android 中的启动画面太慢

Fed*_*ldi 3 android xamarin.android xamarin

我正在创建一个显示启动画面的应用程序,然后创建主要活动。我正在关注这个看起来很简单的教程:https : //developer.xamarin.com/guides/android/user_interface/creating_a_splash_screen/

实施后,我可以成功看到飞溅,但有时(20 次中有 1 次)使用 S5 时我会看到以下屏幕:

错误的画面

其次是(右)飞溅(取自模拟器,但只是为了说明我的观点):

在此处输入图片说明

所以我的猜测是,有时 Xamarin 加载应用程序需要很长时间,因此它会延迟显示启动画面。有什么办法可以防止吗?

更新 1 我已经按照教程进行了操作,但我已经为此取消了睡眠:

Insights.Initialize ("<APP_KEY>", Application.Context);
StartActivity(typeof (MainActivity));
Run Code Online (Sandbox Code Playgroud)

mat*_*dev 5

该示例Thread.Sleep(10000);在 UI 线程上调用...这将锁定应用程序并生成ANR

通过将睡眠作为后台然后触发下一个活动来修复它:

namespace SplashScreen
{
    using System.Threading;

    using Android.App;
    using Android.OS;

    [Activity(Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true)]
    public class SplashActivity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            Task.Run (() => {
                Thread.Sleep (10000); // Simulate a long loading process on app startup.
                RunOnUiThread (() => { 
                    StartActivity (typeof(Activity1));
                });
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)