android连续单击事件实现的两种方案

方案一

  1. view.setOnClickListener(new View.OnClickListener() {  
  2.     @Override  
  3.     public void onClick(View v) {  
  4.             new ContinuousClick().start();  
  5.                 if (ContinuousClick.IsAlive >= 5) {  
  6.                     Log.e(TAG,"连续点击了5次");
  7.                 }  
  8.     }  
  9. });  
  10. static class ContinuousClick extends Thread {  
  11.         public static volatile int IsAlive = 0;  
  12.         @Override  
  13.         public void run() {  
  14.             IsAlive++;  
  15.             try {  
  16.                 Thread.sleep(3000);  
  17.             } catch (InterruptedException e) {  
  18.                 e.printStackTrace();  
  19.             }  
  20.             if (IsAlive > 0) {  
  21.                 IsAlive--;  
  22.             }  
  23.             super.run();  
  24.         }  
  25.     } 


方案二:转载:http://www.jianshu.com/p/c94948fe30a1


private static final String PACKAGE_NAME_LAUNCHER = "com.android.launcher3";
private int mSecretNumber = 0;
private static final long MIN_CLICK_INTERVAL = 600;
private long mLastClickTime;


// click logo button 10 times continuously to open com.android.launcher3
findViewById(R.id.logo).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        long currentClickTime = SystemClock.uptimeMillis();
        long elapsedTime = currentClickTime - mLastClickTime;
        mLastClickTime = currentClickTime;

        if (elapsedTime < MIN_CLICK_INTERVAL) {
            ++mSecretNumber;
            if (9 == mSecretNumber) {
                try {
                    Intent intent = getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME_LAUNCHER);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(intent);
                } catch (Exception e) {
                    Log.i(TAG, e.toString());
                }

                finish();
            }
        } else {
            mSecretNumber = 0;
        }

    }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值