android开发中,按手机返回键,当前Activity 和 ProgressDialog 同时关闭?
pd = ProgressDialog.show(this, "请稍候。。刷新中", msg, true,false);
pd.setCancelable(true); //点击返回键可以取消 需要设置为true 不能取消就用false
new Thread() {
public void run() {
try {
Thread.sleep(1000); // 运行1秒为例
System.out.println("开始转动");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//pd就是ProgressDialog
//下面是 返回键 按钮 监听 代码
public boolean onKeyDown(int keyCode,KeyEvent event){
//按下键盘上返回按钮
if(keyCode == KeyEvent.KEYCODE_BACK){
pd.dismiss();
pd.cancel();
finish();
}
return super.onKeyDown(keyCode, event);
}
补充://我现在的问题是我要按两下才可以退出页面, 按一下是取消 ProgressDialog ,第二下才是 退出页面。。。。 我上面这样写应该是直接退出页面和 PD把? 为什么这样不行。。就大神指教
追问:pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
finish();
}
});
//我写了这个还是要点两次。。又是依次关闭pd 和当前页面你没写到onKeyDown, 里面,不用写在onKeyDown里面吗?//我现在在 加了下面这些, 会导致进度条 转完后 自动关闭 页面和 进度框,
//点击返回键也能全部关闭
//onKeyDown我注释了, 这样也不行啊。。转完就自动关闭啊
pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
finish();
}
});
答案:ProgressDialog 是 Dialog 的子类。
而Dialog有一个setOnCancelListener函数,可以监听对话框的取消事件,对话框在使用Back键或取消按钮关闭时,会执行对话框的cancel函数,这是就会触发事件。
所以你只要加一句pd.setOnCancelListener(...),在里面写好回调即可。
上一个:高手帮帮忙,hibernate hql语句问题,查询两个表
下一个:win7 下用netbeans建立了一个项目 编写了java程序,请问怎样才能把这个程序编译并且放在centos下运行