Xamarin.Forms Android 应用在工作配置文件中使用 VPN 和受管设备时未出现启动画面
Splash screen not appearing on Xamarin.Forms Android app with VPN and managed device on a Work profile
我们有一个非常奇怪的情况,当我们在使用 VPN 的工作配置文件中的托管设备上部署时,Android 应用程序的启动画面没有出现,但一切都在同一设备上的个人配置文件上运行.有没有人有同样的问题或任何可能导致此行为的建议?
为了完整性:使用 Titanium 时会发生相同或相似的错误,并在此处进行描述:https://jira.appcelerator.org/browse/TIMOB-26872
我们在 XML 中将启动画面设置为主启动器 activity 的“windowBackground”样式。 OS 在应用程序启动时显示“windowBackground”,但在我们的例子中,应用程序是由 Android Enterprise 在沙盒环境中启动的,“windowBackground”图像被忽略。所以,这似乎是 Android Enterprise 的问题。
解决方法:
- 创建一个单独的 SplashActivity 设置 MainLauncher = true(确保没有其他 activity 将 MainLauncher 设置为 true)。
- 为 SplashActivity 创建 SplashLayout.xml。
- 在base.OnCreate(savedInstanceState)之后的SplashActivity的OnCreate中,
设置activity的内容:SetContentView(Resource.Layout.SplashLayout);
- 启动 MainActivity:RunOnUiThread(() => StartActivity(typeof(MainActivity)));
- 在 StartActivity 调用后根据您的需要进行延迟。
- 在延迟之后立即调用 Finish(),这样用户将无法 return 通过点击后退按钮返回初始屏幕。
我们有一个非常奇怪的情况,当我们在使用 VPN 的工作配置文件中的托管设备上部署时,Android 应用程序的启动画面没有出现,但一切都在同一设备上的个人配置文件上运行.有没有人有同样的问题或任何可能导致此行为的建议?
为了完整性:使用 Titanium 时会发生相同或相似的错误,并在此处进行描述:https://jira.appcelerator.org/browse/TIMOB-26872
我们在 XML 中将启动画面设置为主启动器 activity 的“windowBackground”样式。 OS 在应用程序启动时显示“windowBackground”,但在我们的例子中,应用程序是由 Android Enterprise 在沙盒环境中启动的,“windowBackground”图像被忽略。所以,这似乎是 Android Enterprise 的问题。
解决方法:
- 创建一个单独的 SplashActivity 设置 MainLauncher = true(确保没有其他 activity 将 MainLauncher 设置为 true)。
- 为 SplashActivity 创建 SplashLayout.xml。
- 在base.OnCreate(savedInstanceState)之后的SplashActivity的OnCreate中, 设置activity的内容:SetContentView(Resource.Layout.SplashLayout);
- 启动 MainActivity:RunOnUiThread(() => StartActivity(typeof(MainActivity)));
- 在 StartActivity 调用后根据您的需要进行延迟。
- 在延迟之后立即调用 Finish(),这样用户将无法 return 通过点击后退按钮返回初始屏幕。