将方法放到AsyncTask中

时间:2014-03-22 13:19:30

标签: android android-asynctask superclass setcontentview

calling方法存在问题。我创建了button,如果点击它,就会启动onClick()。此方法调用up-class中的其他方法。在这些方法中,我将layoutsetContentView(R.layout...);设置为两种不同的布局。目前,我的代码将布局更快地更改为第二个布局。我该如何处理它,如果第一种方法准备就绪,第二种布局只会设置?我知道它必须是asynch-tasks的东西,但我需要帮助来处理它。

我的代码:

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

这两种方法都来自超类。 Method1应将setContentView(r.layout.1)和method2设置为r.layout.2。

2 个答案:

答案 0 :(得分:0)

如果你想在第一个和第二个方法之间有一些时间,你可以在使用处理程序延迟一段时间之后调用第二个方法,如下所示

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

 }

答案 1 :(得分:0)

您可以执行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();