1.使用onKeyUp(),点击第一次返回键会有吐司框提示,倘若在两秒内再次点击返回键,则退出程序,效果图如下:
代码如下:
package com.example.kongjian_11;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private long firstTime=0;
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch(keyCode){
case KeyEvent.KEYCODE_BACK://点击返回键
long secondTime = System.currentTimeMillis();//以毫秒为单位
if(secondTime -firstTime>2000){
Toast.makeText(this, "再按一次返回退出程序", Toast.LENGTH_SHORT).show();
firstTime=secondTime;
}else{
finish();
System.exit(0);
}
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
2.使用onKeyDown()弹出提示框进行二次确认,效果图如下:
代码如下:
package com.example.kongjian_11;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
/**
* Created by Administrator on 2017/6/17.
*/
public class ItemActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){//如果点击了返回键
//声明并初始化弹出对象
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("提示:");
builder.setMessage("是否退出");
//设置确认按钮
builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();//退出程序
}
});
//设置取消按钮
builder.setPositiveButton("取消",null);
//显示弹框
builder.show();
}
return super.onKeyDown(keyCode, event);
}
}