当前位置:编程学习 > JAVA >>

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下运行

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,