Android - 在主页按钮后返回app时阻止onResume

时间:2015-09-24 10:27:20

标签: android android-activity android-lifecycle onresume android-homebutton

有没有办法阻止在按下主页按钮后返回应用程序时在onResume中执行代码?
按下主页按钮时调用的方法是什么?当按下主页按钮时,我可能会举起一些东西?

感谢

4 个答案:

答案 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()调用该活动)。

参考:Which method is run when Home button pressed?

答案 3 :(得分:0)

用户可以通过各种不同的方式离开您的应用。按HOME只是其中之一。来电将离开您的应用,下拉通知列表并按下一个将离开您的应用等。在所有这些情况下,当用户返回您的应用时,将调用onResume()。这是标准的Android行为,并告诉您的应用它现在位于前台并且对用户可见。

如果您需要了解用户返回应用的方式,那么您的体系结构存在缺陷。您可能需要将onResume()中的一些代码移回onCreate()onNewIntent()