将方法放入AsyncTask



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

我的代码:

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

两个方法都来自超类。Method1应该setContentView(r.l ayout1)而method2应该setr.l ayout2

如果你想在第一个方法和第二个方法之间有一些时间,你可以使用下面的handler在延迟后调用第二个方法

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);
 }

你可以做一个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();
    }
}

启动异步任务:

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

相关内容

  • 没有找到相关文章

最新更新