【问题标题】:Xamarin android splash screen. Disallow inputXamarin 安卓启动画面。禁止输入
【发布时间】:2016-08-25 06:21:07
【问题描述】:

为 Xamarin android 应用程序创建了启动画面。

[Activity(Theme = "@style/Theme.Splash", //Indicates the theme to use for this activity
         MainLauncher = true, //Set it as boot activity
         NoHistory = true)]
public class SplashActivity : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        this.StartActivity(typeof(MainActivity));
    }
}

没什么特别的。但是有一个问题:如果我在启动画面显示时触摸、滑动屏幕,那么在启动画面消失后,所有这些输入事件都会开始执行(例如按下按钮)。我能以某种方式阻止它吗?为什么“主要”活动会捕获启动屏幕活动的事件?

【问题讨论】:

    标签: android input xamarin splash-screen


    【解决方案1】:

    您在SplashActivityonCreate() 中开始MainActivity,没有任何延迟。延迟一些时间来启动 MainActivity。

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
    
        new Handler().PostDelayed(new Action(HandleAction), 3000);//Splash shows for 3 seconds
    }
    
    void HandleAction()
    {
        StartActivity(typeof(MainActivity));
    }
    

    【讨论】:

    • 它部分解决了问题,但我认为这不是正确的解决方案,因为我们无法准确知道应用程序加载库的时间以及另一个问题,即如果应用程序启动时间少于 3 秒(当缓存)它不会因为延迟
    • 通常闪屏是一种品牌。大多数情况下,持续时间将是硬编码的时间。除非您可以从网络或任何其他代码中获取一些东西来工作,否则这是常用的方法。在网络操作期间,一些应用程序将等待服务完成以启动新活动。符合要求。
    • 另外,如果启动新活动时没有延迟,则根本不需要启动画面,因为用户不会知道刚刚显示为 Splash 的内容。
    • 当应用程序被缓存时,我的初始屏幕会立即显示大约 4-5 秒或 1-2 秒。创建此启动屏幕是为了在 4-5 秒内显示而不是黑屏,同时 android 会为应用程序加载库。因此,应用程序不会立即启动。
    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多