我有一个问题的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();