有时候,我们在进入主界面之前加载数据需要费一些时间,但是让用户去等待数据显示的响应,会影响体验。
所以我们可以在之前显示一张欢迎界面,然后在这段时间里去完成数据的加载。
注意的一点的是 在onCreate()函数里setContentView(R.layout.welcome);只会去响应最后一次的set。列如下面的代码是实现不了的。
setContentView(R.layout.a);
try{
<span style="white-space:pre"> </span>Thread.sleep(3000) ;
<span style="white-space:pre"> </span>setContentView(R.layout.b) ;
}catch (Exception e){}
不过我们可以开启一个线程去完成。看具体代码
public class MainActivity extends Activity {
ScrollView scrollView ;
private Handler handler ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.welcome);
/* scrollView = (ScrollView) findViewById(R.id.SCRVIEW_ID) ;
scrollView.setVerticalScrollBarEnabled(false);*/
handler = new Handler(){
@Override
public void handleMessage(Message msg){
if(msg.what==1)
setContentView(R.layout.activity_main) ;
}
};
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(4000) ;
} catch (Exception e) {
// TODO: handle exception
}
handler.sendEmptyMessage(1) ;
}
}).start() ;
}