Android 連續(xù)點(diǎn)擊X次,作相應(yīng)地響應(yīng)

今天寫一個(gè)比較有意思的算法,是從別的博客看到的。這個(gè)算法可以記下來,以后有其他類似需求可以做點(diǎn)小小的思想轉(zhuǎn)變用此算法實(shí)現(xiàn)。代碼如下:

···

public void showBuildVersion() {

System.arraycopy(seconds, 1, seconds, 0, seconds.length - 1);//把從第二位至最后一位之間的數(shù)字復(fù)制到第一位至倒數(shù)第二位

seconds[seconds.length - 1] = SystemClock.uptimeMillis();//更新最后一位

if (SystemClock.uptimeMillis() - seconds[0] <= 2000) {//連續(xù)點(diǎn)擊之間間隔小于2秒,有效

PackageManager packageManager = getPackageManager();

PackageInfo packageInfo;

try {

packageInfo = packageManager.getPackageInfo(getPackageName(), 0);

ToastTool.showShort(this, "build版本號:" + packageInfo.versionCode);

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}

}

}

···

這個(gè)方法實(shí)現(xiàn)的是連續(xù)點(diǎn)擊5次,即彈出版本號。每點(diǎn)擊1次就調(diào)用showBuildVersion();

其中,seconds是一個(gè)長度為5的long數(shù)組。System.arraycopy(seconds, 1, seconds, 0, seconds.length - 1);表示把數(shù)組的第二位至最后一位之間的值復(fù)制到第一位至倒數(shù)第二位,

可以理解成把seconds數(shù)組的后4位整體往前移了1位,然后seconds[seconds.length - 1] = SystemClock.uptimeMillis();//更新最后一位。

取數(shù)組的第一位seconds[0]與當(dāng)前系統(tǒng)時(shí)間判斷,如果在2秒之內(nèi),即作出響應(yīng)。只有在點(diǎn)擊5次之后,seconds[0]才是有值的,否則seconds[0]的時(shí)間值是0,0與SystemClock.uptimeMillis()時(shí)間相差自然是不止2秒的。點(diǎn)擊5次之后,seconds[0]有值了,它的值是第一次點(diǎn)擊時(shí)的時(shí)間,與當(dāng)前系統(tǒng)時(shí)間比較,差值<2秒,則作出響應(yīng)。

??????? 有什么疑問或建議歡迎留言評論噢!謝謝你的觀看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,724評論 19 139
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,661評論 0 3
  • 自定義雙擊事件 點(diǎn)擊事件:在控件上按下,離開,有瞬間的停留。 雙擊事件:在單位時(shí)間內(nèi),雙擊。 多擊事件:在單位時(shí)間...
    未見哥哥閱讀 923評論 0 0
  • 一、JS前言 (1)認(rèn)識JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,945評論 0 8
  • 那年夏天,我還戴著燕尾帽,穿著天使服,穿插在每個(gè)需要我的病房,小腿時(shí)而疼又時(shí)而酸,卻掩蓋不了自己心中的那份滿...
    沐沐梓梓閱讀 430評論 0 0

友情鏈接更多精彩內(nèi)容