onPause未通过按下电源按钮调用

时间:2015-03-05 14:30:04

标签: java android onpause


如果我在我的应用程序中点击了Powerbutton,而应用程序当前正在运行未调用的onPause。第一个问题:这通常适用于Android吗? 我尝试通过设置onPause来调用onKeyListener。我可以为活动中的所有元素设置此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;
        }
    });

但这也行不通。所以现在主要的问题是:如果你在应用程序当前运行的时候点击了Powerbutton,你有没有可能打电话给onPause? (不需要是onKeyListener

2 个答案:

答案 0 :(得分:2)

  

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

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

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

答案 1 :(得分:0)

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

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