异步加载进度条,屏蔽搜索键
当进行耗时的操作时,就会写个进度条在界面上运行。但是按返回键,搜索键时,进度条会消失,但是耗时的操作还在进行中,怎么办呢?

进度条:ProgressDialog dialog;
1. 异步加载进度条屏蔽返回键很简单,只要设置dialog.setCancelable(false);即可。
2. 可是屏蔽搜索键没有现成的东西。
?想法一,重写onKeyDown函数:
定义个boolean boo = flase,在耗时操作中设置 boo = true;操作完成设置boo = flase;重写onKeyDown:public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_SEARCH: {if(boo){ return true; }else{ break; } } return super.onKeyDown(keyCode, event); }?
?运行发现此法不可行,按搜索键,搜索功能屏蔽了,但进度条还是消失了。

原来异步加载进度条后,进度条获取了焦点,而onKeyDown是屏幕的,不是进度条的。so
dialog.setOnKeyListener(new DialogInterface.OnKeyListener(){ public boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH) { return true; } return false; } });?
?即可。