• 点我有彩蛋


    现在市面上很多应用设置了双击退出应用,其实代码实现并不难,只需要设置两次点击的时长不超过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数组的长度决定了需要连续点击的次数。

  • 相关阅读:
    view上面 长view时候要设置其frame的,
    controller.allowsEditing = NO;神医,
    怎样计算,遗留,
    编码,一点阅读(转:阮一峰的网络日志),
    原来 ascll是对英文系统的编码,
    CoreGraphics 画图,(转燕羽天空)
    Core Graphics,
    计算数据类型占有 字节的长度,
    浅谈Promise(一)
    原生js实现表格内容增删改
  • 原文地址:https://www.cnblogs.com/android-er/p/5373697.html
Copyright © 2020-2023  润新知