I faced similar problem, so, i needed to know when the user press the recent apps button (menu key button in old versions of android).
after a several hours of research i didn't found an event to catch when the home button or the menu button is pressed.
i found that it's take a longer time to call onStop() when the user press the home button, so i figure a trick to distinguish between these tow buttons relating on time of response and overriding two methods:
@Override
public void onUserLeaveHint() {
// do stuff
super.onUserLeaveHint();
userLeaveTime = System.currentTimeMillis() ;
isNotPower = true;
}
@Override
public void onStop() {
super.onStop();
if (isNotPower) {
defStop = System.currentTimeMillis() - userLeaveTime;
if (defStop > 200 ) {
// when the home button pressed
}
if (defStop < 200 ) {
// when the recent apps button pressed
}
}
isNotPower = false;
}
- the isNotPower parameter that's to check that not the power button is pressed-
when the power button pressed the onStop() method is called but not th onUserLeaveHint().
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…