onPause,onResume,onStop,onStart等,没有开火 - 生命周期?

时间:2012-04-20 18:59:24

标签: android android-lifecycle

我有两个在平板电脑上一起工作的应用程序。我注意到,如果用户退出一个应用程序并且下次打开应用程序时oncreate被调用,但是如果他们回到主页然后返回oncreate则不会被调用..我也注意到onPause,onStop,onResume是NEVER被调用..我需要一些如何确保应用程序完成,如果用户回家...

@Override
    protected void onPause () {
        super.onPause();
        Toast.makeText(this, "Pause MED", Toast.LENGTH_SHORT).show();
        finish();
    }

    @Override
    protected void onStop () {
        super.onStop();
        Toast.makeText(this, "stopped MED", Toast.LENGTH_SHORT).show();
    }


    @Override
    protected void onRestart () {
        Toast.makeText(this, "Restart MED", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onStart () {
        Toast.makeText(this, "Start MED", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onResume () {

        super.onResume();
        Toast.makeText(this, "RESUME MED", Toast.LENGTH_SHORT).show();
        Intent currentIntent = this.getIntent();
        Bundle extras = currentIntent.getExtras();

或其他选项是,如果我的其他应用可以检查该应用是否已打开并关闭它..

请帮助

2 个答案:

答案 0 :(得分:5)

主页按钮不会终止应用程序,它应该在命中时调用onPause(),然后在你回到应用程序时调用onResume()。而不是使用吐司,为什么不打印到日志?我确信这些方法都被解雇了。可能只是Toast没有显示,因为在修改UI之前或之后调用这些方法。

我从经验中注意到的一些看起来有点奇怪的事情:onResume()即使你正在启动应用程序的新实例(在点击主页按钮后没有回来)也会被触发...我是非常肯定只要你的活动获得前景,就会触发onResume(),无论它是否已经在后台运行。

答案 1 :(得分:1)

您的应用在按下主页按钮后触发onCreate()因为您在onPause()中调用finish()时正在销毁您的应用。它必须在销毁后再次创建。我也相信这会导致您的Toasts意外行为,因为您已经破坏了它的上下文。