【问题标题】:onPause not called by hitting Powerbutton按下 Powerbutton 未调用 onPause
【发布时间】:2015-03-05 14:30:04
【问题描述】:


如果我在应用程序当前正在运行onPause 时在我的应用程序中按下电源按钮,则未调用。第一个问题:这对 Android 来说很常见吗?
我试图通过设置onKeyListener 来调用onPause。我可以为活动中的所有元素设置此onKeyListener 吗?例如。我将它设置在我的realativeLayout

rLayout.setOnKeyListener(new View.OnKeyListener()
    {
        public boolean onKey(View v, int keyCode, KeyEvent event)
        {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_POWER))
            {
                onPause();
            }
            return true;
        }
    });

但这也没有用。所以现在的主要问题是:如果您在应用程序当前运行时按下电源按钮,您是否有可能致电onPause? (不需要是onKeyListener

【问题讨论】:

  • onPause 应在手机锁定时作为自然活动生命周期的一部分调用。发布您的 onPause 方法。

标签: java android onpause


【解决方案1】:

当您的活动进入暂停状态时,系统会调用 onPause() 方法

http://developer.android.com/training/basics/activity-lifecycle/pausing.html

请务必注意,应用本身绝不会调用 onPause 本身,因为这可能会扰乱 Activity 的生命周期(由 Android 而非应用管理)。如果用户按下电源按钮,Android 将自动暂停 Activity,无需在您的应用中执行任何操作。 如果您认为没有调用 onPause,请发布 onPause 代码。

【讨论】:

    【解决方案2】:

    我只想在我的手机进入睡眠模式之前拨打onPause,无论如何......
    这是我的onPause

    @Override
    protected void onPause() {
        super.onPause();
        appactive = 0;
        lastappactive = Calendar.getInstance().getTime();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 2012-02-05
      相关资源
      最近更新 更多