Android 对返回按键点击次数的监听

转载请标明出处:
http://blog.csdn.net/ming2316780/article/details/51578796
本文出自:【Android_Jerry的博客】

具体实现方法代码如下:

可对返回按键监听点击次数,进行不同的操作,例如:

  • 双击关闭程序
  • 三击事件
  • 四击事件
  • 多击事件
public class MainActivity extends AppCompatActivity{

    private long afterTime = 0;
    private long[] mHits = new long[3]; // 数组长度代表点击次数

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onBackPressed() {
        doubleClickFinish();
//threeClickFinish();
    }

    // 多次点击返回键操作,高级实现方法
    private void threeClickFinish() {
        System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
        mHits[mHits.length - 1] = SystemClock.uptimeMillis();
        if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
            Toast.makeText(this, "三击返回按钮", Toast.LENGTH_SHORT).show();
        }
    }

    // 双击点击操作,低级实现方法
    private void doubleClickFinish() {
// 1. SystemClock.uptimeMillis(); 从开机到现在的毫秒数(手机睡眠的时间不包括在内);
// 2. System.currentTimeMillis(); 从1970年1月1日 UTC到现在的毫秒数;
        long curTime = SystemClock.uptimeMillis();
        long time = curTime - afterTime;
        if (time < 500) {
            finish();
        } else {
            afterTime = curTime;
            Toast.makeText(this, "双击关闭程序", Toast.LENGTH_SHORT).show();
        }
    }
}

你可能感兴趣的:(Android)