public class MainActivity extends Activity {
/ / ... other code omitted
@ Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction () == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis () - exitTime)> 2000) / / System.currentTimeMillis () whenever called , certainly greater than 2000
{
Toast toast = Toast.makeText (getApplicationContext (), " Press again to exit ", Toast.LENGTH_SHORT);
toast.setGravity (Gravity.CENTER, 0, 0);
toast.show ();
exitTime = System.currentTimeMillis ();
} else {
finish ();
System.exit (0);
}
return true;
}
return super.onKeyDown (keyCode, event);
}
}
want to write the above code inside onKeyDown own tools category, others are easy to handle, which is the last one super.onKeyDown (keyCode, event) I do not know how to write , I implore heroes help solve ? Thank you
public class MyTool {
Context context;
Long exitTime;
public MyTool (Context context) {
this.context = context
}
public boolean exit (int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction () == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis () - exitTime)> 2000)
{
Toast toast = Toast.makeText (context.getApplicationContext (), " Press again to exit ", Toast.LENGTH_SHORT);
toast.setGravity (Gravity.CENTER, 0, 0);
toast.show ();
exitTime = System.currentTimeMillis ();
} else {
context.finish ();
System.exit (0);
}
return true;
}
return super.onKeyDown (keyCode, event) ;/ / here I do not know how to write
}
}
------ Solution ----------------------------------- ---------
super is an object , the Senate changed :
public boolean exit(Activity superActivity, int keyCode, KeyEvent event) {
// ...
return superActivity.onKeyDown(keyCode, event);
}
------ eference ------------------------------------- -
positive solution, thank you
------ eference ------------------------------ ---------
just found a problem, how to superActivity instantiated :
MyTool tool = new MyTool (this);
Activity superActivity;
public boolean onKeyDown (int keyCode, KeyEvent event) {
tool.exit (superActivity, keyCode, event)
}
------ eference ------------------------------------ ---
change in thinking , and see what I wrote :
private int pressed = 0;
@Override
public void onBackPressed() {
if (pressed ++ == 0) {
KDialogHelper.showToast(this, "再按一次退出系统");
new Timer().schedule(new TimerTask() {
@Override
public void run() {
pressed = 0;
}
}, 3000);
}
if (pressed > 1) {
finish();
}
}
没有评论:
发表评论