【发布时间】:2023-03-28 10:57:01
【问题描述】:
当用户在应用程序中间按下主页按钮时,我想终止我的应用程序。
还有人找我使用onUserLeaveHint() 方法。我应该在哪里使用这种方法?
【问题讨论】:
-
当你按下home键时会调用onstop()方法。
标签: android android-activity kill
当用户在应用程序中间按下主页按钮时,我想终止我的应用程序。
还有人找我使用onUserLeaveHint() 方法。我应该在哪里使用这种方法?
【问题讨论】:
标签: android android-activity kill
在较旧的 Android 版本上,这可以正常工作。但 Android 改变了这一点,因为 “Home Button 应该保持 Home Button”,而且他们不希望任何人覆盖 Home Button。由于这个原因,您的代码将无法正常工作。
也许你可以实现这个:
@Override
protected void onStop() {
super.onStop();
finish();
}
但我敢打赌你不想这样做,因为每当你的应用程序进入后台时,onStop() 就会被调用(例如,当你的应用程序在前台时来电),这将是 finish当前的Activity 目前不需要。
你可能想看看
【讨论】:
您可以尝试按如下方式覆盖 onPause() 按钮:
@Override
public void onPause() {
super.onPause();
this.finish();
}
请记住,Android 旨在防止主页按钮杀死应用。
【讨论】:
Home 按钮是一个非常危险的覆盖按钮,因此,Android 不会让你覆盖它的行为,就像你做 BACK 按钮一样。 所以你不能在没有用户确认的情况下永久覆盖主页按钮(这是出于安全问题) 所以即使在使用时:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_HOME)
{
Log.d("Test", "Home button pressed!");
}
return super.onKeyDown(keyCode, event);
}
它不会起作用,因为 KeyEvent.KEYCODE_HOME 总是由系统处理并且从不发送到应用程序。
【讨论】: