【问题标题】:Complete first method before starting 2nd在开始第二个之前完成第一个方法
【发布时间】:2015-04-01 11:35:17
【问题描述】:

我的问题在于这些行:

 @Override
        public void onClick(View arg0) {
            doFirstMethod();
            doSecondMethod();
    }

问题是我不知道如何,但我的程序在第一种方法完成之前就执行了第二种方法。有没有什么办法在java中说在第一种方法完成后开始第二种方法我想只是延迟第二种方法并在几秒钟后执行,但我意识到第一种方法的速度在每个移动设备上都会有所不同。

【问题讨论】:

  • 添加 doSecondMethod();在 doFirstMethod() 结束时;在处理程序的帮助下
  • 第一种方法中是否有任何 AsyncTask ?
  • 使用同步化方法
  • 显示你的两种方法的代码。使用您当前的 sn-p 可以保证 doSecondMethod() 在 doFirstMethod() 之后执行。或者你有量子计算机吗?
  • 好的,谢谢你这么快的回答。现在我对 stackoverflow 的信心又回来了,似乎 M D 和 Varun 向我展示了正确的路径。

标签: java android


【解决方案1】:

将此与处理程序或线程一起使用

@Override
    public void onClick(View arg0) {
        doFirstMethod();
}

public void doFirstMethod {
    .....
     .....
     doSecondMethod();
}

【讨论】:

    【解决方案2】:

    1)您可以在第一种方法结束时调用第二种方法。

    2)如果您使用的是异步任务,则在 onPostExecute() 方法中调用第二个方法。

    【讨论】:

      【解决方案3】:

      用户处理程序...

      在第一个方法的末尾使用setemptyMessage(0);

      public void handleMessage (Message msg) {
          switch (msg.what) {
              case 0:
                  secondMethod();
                  break;
      
      
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-13
        • 2018-05-22
        • 2018-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多