启动画面未显示在Xamarin.Forms带有VPN和受管设备的Android应用程序的工作资料上

问题描述

我们遇到一个非常奇怪的情况,当我们在使用VPN的工作资料中的受管设备上部署Android应用程序的初始屏幕时,却没有出现,但是在同一设备上的个人资料中一切正常。是否有人有相同的问题或建议可能导致这种行为?

出于完整性考虑:使用Titanium时会发生相同或相似的错误,其描述如下:https://jira.appcelerator.org/browse/TIMOB-26872

解决方法

我们使用XML将初始屏幕设置为主启动器活动的“ windowBackground”样式。操作系统在应用程序启动时显示“ windowBackground”,但在我们的示例中,Android Enterprise在沙盒环境中启动了该应用程序,而“ windowBackground”图像被忽略。因此,这似乎是Android Enterprise的问题。

解决方案:

  1. 创建一个单独的SplashActivity设置MainLauncher = true(确保没有其他活动将MainLauncher设置为true)。
  2. 为SplashActivity创建SplashLayout.xml。
  3. 在base.OnCreate(savedInstanceState)之后的SplashActivity的OnCreate中, 设置活动的内容:SetContentView(Resource.Layout.SplashLayout);
  4. 启动MainActivity:RunOnUiThread(()=> StartActivity(typeof(MainActivity)));
  5. 在StartActivity调用后,根据您的需要进行延迟。
  6. 在延迟后致电Finish(),因为用户将无法通过单击“后退”按钮返回到初始屏幕。