有没有办法阻止在按下主页按钮后返回应用程序时在onResume中执行代码?
按下主页按钮时调用的方法是什么?当按下主页按钮时,我可能会举起一些东西?
感谢
答案 0 :(得分:2)
覆盖上述方法后,现在您可以使用onKeyDown()方法轻松收听活动中的HOME键。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
//The Code Want to Perform.
}
});
希望这会有所帮助
答案 1 :(得分:1)
感谢大家的帮助
我设法通过创建一个boolean,executeOnResume来解决这个问题,每次调用onStop()时我都会伪造,并关闭应用程序。然后,当再次打开应用程序以选择是否应该执行某些代码时,我会在onResume()中检查此布尔值的状态。
<强>的onStop()强>
//-----application stopped
@Override
protected void onStop() {
super.onStop();
//do not execute onResume code when app opened again
executeOnResume = false;
}
的的onResume()强>
//-----application resumed
@Override
protected void onResume() {
super.onResume();
//if true
if (executeOnResume) {
//do something
}
else {
//execute onResume true code the next time onResume is called. For example, returning from another activity
}
}
答案 2 :(得分:0)
点击“主页”按钮可创建启动主屏幕的意图,然后启动该功能 正确的。
如果是这种情况,我希望每当创建主屏幕时都会运行onCreate()方法 不必要。如果它已经在运行,它将使用onNewIntent()调用。
如果有人可以对这个问题提供一些启示,那么基本的问题是当我点击Home按钮时是否调用onResume()或onCreate() 每当任何活动从用户输入的角度返回到前台时,都会调用onResume()。在这方面,主屏应该没有什么不同。
在创建活动时调用onCreate()。不会创建现有活动,而只是将其带回前台。如果触发活动返回前台的是startActivity()调用,则将使用onNewIntent()和onResume()(通常是onStart()调用该活动)。
答案 3 :(得分:0)
用户可以通过各种不同的方式离开您的应用。按HOME只是其中之一。来电将离开您的应用,下拉通知列表并按下一个将离开您的应用等。在所有这些情况下,当用户返回您的应用时,将调用onResume()
。这是标准的Android行为,并告诉您的应用它现在位于前台并且对用户可见。
如果您需要了解用户返回应用的方式,那么您的体系结构存在缺陷。您可能需要将onResume()
中的一些代码移回onCreate()
或onNewIntent()
。