如何手动暂停Android中的活动?

Rel*_*mes 3 android

当您按下Android中的后退按钮时,它会调用finish(),并且我希望它被替换为暂停行为,并且我找不到允许您手动触发的文档.

编辑:好的,我猜这需要更多的代码

public boolean onKeyDown(int keyCode, KeyEvent event)
{
    int Action = event.getAction();
    if (Action == KeyEvent.ACTION_DOWN)
    {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
        {
         //Default Implementation calls finish();
         //I want to call Pause, which should call onPause and then send my app in the background !

          }
      }
}
Run Code Online (Sandbox Code Playgroud)

我刚试过onBackPressed,至少在Android 4.3上它甚至没有上面的代码.我尝试手动调用onPause()但只是将我的应用程序呈现为无效状态.

And*_*res 9

要覆盖后退按钮的行为,您可以覆盖按下后退按钮时调用的onBackPressed()方法Activity:

@Override
public void onBackPressed() {
   moveTaskToBack(true);  // "Hide" your current Activity
}
Run Code Online (Sandbox Code Playgroud)

通过使用moveTaskToBack(true)您的活动发送到后台,但不能保证它将保持"暂停"状态,如果需要内存,Android可以杀死它.我不知道为什么你想要这种行为我认为最好保存Activity状态并在你回来时恢复它,或者简单地用你想要带来的新Activity启动另一个Intent.