【问题标题】:Automatically start execution upon activity launch活动启动时自动开始执行
【发布时间】:2013-05-02 10:03:51
【问题描述】:

我正在开发一个将一些图形 UI 事件与音轨同步的应用程序。现在,在 onCreate 退出后,您需要按下一个按钮来设置一切。我正在尝试添加功能,使音频/图形交互在所有内容布局后 10 秒开始。

我的第一个想法是,在 onCreate 结束时,使用解决方案 here 使 UI 线程休眠 10000 毫秒,然后调用 button.onClick()。不过,这对我来说似乎是一种非常糟糕的做法,而且无论如何都没有尝试过。有没有实现这个自动启动功能的好方法?

【问题讨论】:

    标签: android delay autostart


    【解决方案1】:

    永远不要在 UI 线程上设置睡眠/延迟。相反,请使用 Handler 及其 postDelayed 方法在您的 onCreateonStartonResume 中完成活动。例如:

    @Override
    protected void onResume() {
        super.onResume();
    
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //do whatever you want here
            }
        }, 10000L); //the runnable is executed on UI-thread after 10 seconds of delay
    }
    

    【讨论】:

      【解决方案2】:
      Handler handler=new Handler();
      Runnable notification = new Runnable()
       {
           @Override
              public void run() 
              {
                         //post your code............
                    }
                  };
                  handler.postDelayed(notification,10000);
      

      【讨论】:

        【解决方案3】:

        是的,让 UI 线程休眠并不是一个好主意。

        试试这个

        private final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
        worker.schedule(task, 10, TimeUnit.SECONDS);
        

        【讨论】:

        • 我会说,这不是 Android 的做法。无故浪费资源。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        • 2016-06-07
        • 2011-12-25
        相关资源
        最近更新 更多