Android 一次单击两次回击事件。安卓

Android 一次单击两次回击事件。安卓,android,back,Android,Back,我想在安卓系统中,只需点击后退按钮,就可以触发两次后退事件。这怎么可能呢?在重写的单击方法中运行事件两次 Button mClickButton1 = (Button)findViewById(R.id.clickButton1); mClickButton1.setOnClickListener(this); @Override public void onClick(View v) { event(); event(); } 如果单击“上一步”按钮,它将调用以下方法:

我想在安卓系统中,只需点击后退按钮,就可以触发两次后退事件。这怎么可能呢?

在重写的单击方法中运行事件两次

Button mClickButton1 = (Button)findViewById(R.id.clickButton1);
mClickButton1.setOnClickListener(this);

@Override
public void onClick(View v) {
     event();
     event();
}

如果单击“上一步”按钮,它将调用以下方法:

@Override
public void onBackPressed() {
     super.onBackPressed();
}
@Override
public void onBackPressed() {
    long t = System.currentTimeMillis();
    if (backPressedTime == '') {
        backPressedTime = t;
        counter = 1;
    } 
    else if (t - backPressedTime > 2000) { // 2 secs
         counter = 0;
         backPressedTime = t;
         Toast.makeText(MainActivity.this, R.string.retry_to_exit,
                    Toast.LENGTH_SHORT).show();
    } 
    else 
    { 
      counter++;
      if(counter > 2)
      {
      }
      else
      {
         // this guy is serious
         // clean up
         super.onBackPressed(); // bye
         finish();
      }
    }

}
此方法将被调用super.onBackPressed();这将调用应用程序以完成并退出它

如果您需要在两次按下“后退”按钮时调用某些方法,则应为下面的类似按下的方法实现计数器:

@Override
public void onBackPressed() {
     super.onBackPressed();
}
@Override
public void onBackPressed() {
    long t = System.currentTimeMillis();
    if (backPressedTime == '') {
        backPressedTime = t;
        counter = 1;
    } 
    else if (t - backPressedTime > 2000) { // 2 secs
         counter = 0;
         backPressedTime = t;
         Toast.makeText(MainActivity.this, R.string.retry_to_exit,
                    Toast.LENGTH_SHORT).show();
    } 
    else 
    { 
      counter++;
      if(counter > 2)
      {
      }
      else
      {
         // this guy is serious
         // clean up
         super.onBackPressed(); // bye
         finish();
      }
    }

}
最后,如果需要在backpress事件中调用某些方法,可以将方法添加到

@Override
public void onBackPressed() {
     yourEvent();
     yourEvent();
     super.onBackPressed();
}
如果需要在不同的线程中运行,可以调用

    new Runnable() {

        @Override
        public void run() {
            yourMethod()
        }
    };
如果需要延迟调用方法,可以使用

                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            tourMethod();
                        }
                    }, 2000);