点我有彩蛋
现在市面上很多应用设置了双击退出应用,其实代码实现并不难,只需要设置两次点击的时长不超过500ms(自己定义),代码如下:
private int firsttime = 0;
@Override
public void onBackPressed() {
if(firsttime!=0){
int secondtime = (int) SystemClock.elapsedRealtime();
if(secondtime-firsttime<500){
Toast.makeText(this, "要退出哦!", Toast.LENGTH_LONG).show();
finish();
}
firsttime = 0;
return;
}
firsttime = (int) SystemClock.elapsedRealtime();
Toast.makeText(this, "再点击一次真的退出哦!", Toast.LENGTH_LONG).show();
}
但是突然想到安卓系统设置界面上面也有一个类似的功能,就是连续点击设置界面中的版本号七次就弹出彩蛋效果,如果系统也采用这种设计模式代码就会显得特别的冗长,
可谷歌大牛会怎么设计呢?出奇好奇就翻开了系统设置应用的源代码,找到核心类,DeviceInfoSettings.jar
核心代码:
long[] mHits = new long[3];
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
mHits[mHits.length-1] = SystemClock.uptimeMillis();
if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {
// 处理代码
}
其中mHits数组的长度决定了需要连续点击的次数。