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

将方法放入AsyncTask

  •  0
  • basti12354  · 技术社区  · 10 年前

    我有个问题 calling 一种方法。我创建了 button ,如果我单击它,它将启动 onClick() 。此方法正在从调用其他方法 up-class 。在这些方法中,我设置 layout 通过 setContentView(R.layout...); 两种不同的布局。目前,我的代码非常快地将布局更改为第二个布局。如果第一个方法准备好了,我如何处理第二个布局只会设置的问题?我知道这一定是 asynch-tasks ,但我需要帮助来处理它。

    我的代码:

    public void do(int a) {
     method1();
     method2();
     }
    

    这两个方法都来自一个超类。方法1应将ContentView(r.layout.1)和方法2设置为r.layout.2。

    2 回复  |  直到 10 年前
        1
  •  0
  •   Pavan    10 年前

    如果您希望在第一个方法和第二个方法之间有一段时间,可以在延迟后使用如下处理程序调用第二个

    public void do(int a) {
     method1();
    new Handler().postDelayed(new Runnable() 
    {
    
            @Override
            public void run() 
                    {
                // TODO Auto-generated method stub
                try
                {
                    method2();
                }
                catch(Exception e)
                {
    
                               Log.d("Exception",""+e.getMessage());
                }
            }
            }, 500);
    
     }
    
        2
  •  0
  •   MikeOx    8 年前

    您可以执行AsyncTask:

    public class BasicAsyncTask extends AsyncTask{
    
        @Override
        protected Object doInBackground(Object[] params) { // this will start when .execute() is called
            method1();
            return null;
        }
    
        @Override
        protected void onPostExecute(Object o) {   // this will be executed when doInbackGround finishes
            super.onPostExecute(o);
            method2();
        }
    }
    

    启动AsynkTask:

    BasicAsyncTask basicAsyncTask = new BasicAsyncTask();
    basicAsyncTask.execute();