版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31939617/article/details/86361369
场景是:在activity1点击了按钮之后跳转到activity2,但是在点击之后,有大概六七秒的时间还停留在activity1,这样给用户的体验不是很友好。
在activity1里面:
先定义
private static ProgressDialog dialog;
然后我是在点击按钮的监听事件里面写了:
//选择背景按钮按下
bgBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Handler handler=new Handler();
//在run里面写了跳转activity
Runnable runnable=new Runnable() {
@Override
public void run() {
Intent intent = new Intent();
intent.setClass(MainActivity2.this, BgMapActivity.class);
startActivityForResult(intent, 3);
}
};
handler.post(runnable);
dialog=ProgressDialog.show(MainActivity2.this,"请稍等","正在跳转",true,true);
}
});
//在onCreate方法外面定义静态方法
public static void closeProgressDialog() {
dialog.dismiss();
}
在activity2里面
先定义
private static final int EVENT_TIME_TO_CHANGE_IMAGE = 100;
然后,这里写的是,当activity2加载出来之后,要把定义好的EVENT_TIME_TO_CHANGE_IMAGE值传回activity1中,进行关闭进度条
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus){
Message message = mHandler.obtainMessage(EVENT_TIME_TO_CHANGE_IMAGE);
mHandler.sendMessage(message);
}
}
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch(msg.what){
case EVENT_TIME_TO_CHANGE_IMAGE:
MainActivity2.closeProgressDialog();
break;
}
}};