您的位置:首页 > 移动开发 > Android开发

android退出时关闭整个应用程序

2013-05-30 10:29 218 查看
以下代码是捕获系统的返回按键和HOME按键,确认退出后kill掉进程。这样就没有不小心留下的线程,导致手机管理软件发现这个程序还在运行。

//加上这个就能够捕捉Home键了
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
//TODO 系统按键处理事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
AudioManager audio = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
audio.adjustStreamVolume(
AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE,
AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
audio.adjustStreamVolume(
AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER,
AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
return true;
}
//如果是Home键释放资源,结束
if(keyCode==KeyEvent.KEYCODE_HOME)
{
stopService(music_service_intent);
finish();
android.os.Process.killProcess(android.os.Process.myPid());//关闭整个程序
return true;
}
//按下键盘上返回按钮
if(keyCode == KeyEvent.KEYCODE_BACK){

new AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("确认退出翻翻看吗?")
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
stopService(music_service_intent);
finish();
android.os.Process.killProcess(android.os.Process.myPid());//关闭整个程序
}
}).show();
return true;
}else{
return super.onKeyDown(keyCode, event);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: