按下电源按钮不会调用 onPause

onPause not called by hitting Powerbutton


如果我在应用程序当前 运行 时按下应用程序中的电源按钮,则 onPause 未被调用。第一个问题:Android 是否常见?
我试图通过设置 onKeyListener 来调用 onPause。我可以为 activity 中的所有元素设置此 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

As your activity enters the paused state, the system calls the onPause() method

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

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

我只想在我的 phone 进入睡眠模式之前调用 onPause,但是...
这是我的 onPause:

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