代码之家  ›  专栏  ›  技术社区  ›  Zippy

在完成onCreate()之前等待用户交互

  •  0
  • Zippy  · 技术社区  · 9 年前

    在我的应用程序中,我在 创建时的回调函数 然后,启动一个异步任务,该任务设置加载我的所有资源等……在异步任务启动后,我将启动屏幕添加到布局中。当加载完所有内容后,防溅屏将被关闭,我的Open GL渲染器将显示在下面。

    我试图做的是添加一个对话框屏幕(基本上是另一个 看法 显示位图的类)。而且,我 不想要 任何Splash的事情都会发生,直到用户按下我的对话框屏幕中的屏幕。

    应该是这样的(注意,这只是我真正的onCreate的摘录,但应该足以说明问题)

    public void onCreate(Bundle savedInstanceState){
    
            SplashScreen splash = new SplashScreen (getApplication(), width, height);
            ConsentDialog consentDialog = new ConsentDialog(getApplication(), width, height);
    
            //Add the consent dialog
            layout.addView(consentDialog);
    
            setContentView(layout);
    
            super.onCreate(savedInstanceState);
    
            //Splashscreen
            backgroundResources = new MyAsync(newBundle);
            backgroundResources.execute(); 
            layout.addView(splash);
    }
    

    然而,当我运行上面的程序时,它会显示启动屏幕,加载所有内容,然后关闭启动,留下对话框。

    我如何才能在setContentView之后暂停onCreate方法(或产生暂停效果的东西),直到用户点击屏幕?(注意,我正在使用我的consentDialog对象中的onTouch(View v,MotionEvent事件)方法等待触摸事件。

    基本上,异步不应该启动 直到 用户轻击屏幕。如果不能做到这一点,我该怎么做才能达到我想要的效果?

    2 回复  |  直到 9 年前
        1
  •  1
  •   CommonsWare    9 年前

    我如何才能在setContentView之后暂停onCreate方法(或产生暂停效果的东西),直到用户按下键?

    你没有。

    注意,我正在使用我的consentDialog对象中的onTouch(View v,MotionEvent事件)方法等待按键

    将应该等待“直到用户点击屏幕”逻辑的工作放入 onTouch() ,或在从调用的方法中 接触() .

        2
  •  1
  •   hata Tanveer Hasan    9 年前

    在“创建”时,应用程序对用户来说实际上并不活跃(可见或交互)。

    我认为你所能做的只是等待用户的交互(点击),然后显示水花。

    活动由事件驱动。您应该在屏幕视图中设置(添加)onClickListener或onTouchListener。在监听器的实现中,您可以编写显示splash的代码。只有当用户点击时才会调用此代码。