如何覆盖背压以不杀死活动?

时间:2011-08-08 04:07:26

标签: android

我想在第一次打开应用程序时显示一些图像。或者如果它重新开放。当用户按下后退按钮时,我不希望应用程序被杀死,以进入主屏幕。但是保持它仍然活着但仍然返回主屏幕。

3 个答案:

答案 0 :(得分:3)

正如Andro_Selva所说,后退按钮完成了你的活动;它不会杀死应用程序。

如果您想要完成与按下主页按钮类似的操作(因此您的应用程序已隐藏,但活动仍处于活动状态),您可以执行以下操作:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

与按主页键略有不同,因为它只会让您使用上次启动此应用时的应用。所以它不一定会让你回到发射器。但是这种行为将更接近用户在按下时所期望的行为。

您可能还想在根活动下将其放在Manifest中:

android:alwaysRetainTaskState="true"

如果Android闲置了大约半小时,这将阻止Android完成所有活动的默认行为。

答案 1 :(得分:2)

将此添加到您的活动中

public void onBackPressed() {
    //finish(); this is what would normally happen
}

这样您就可以完全控制后退键。至于主页键,你最好不要做任何事情。否则,如果你的应用程序出现问题,这可能是一个大问题,用户将无法摆脱它。另外,如果你看一下android是如何工作的,当按下一个主页键时,应用程序不会被杀死,只是暂停,除非系统决定没有足够的内存来保存你的应用程序,在这种情况下它将关闭。

答案 2 :(得分:0)

how to override backpress to not kill activity? 

我相信你在这里没有理解某些事情。当您按下后退按钮时,并不表示您正在查杀您的应用程序。这意味着您正在完成您的活动,这也意味着您的应用程序正在后台运行。如果你想杀死你的活动,你必须做其中一个,

  1. 致电System.exit(0);
  2. 或者

       int pid = android.os.Process.myPid();
       android.os.Process.killProcess(pid);
    
  3. 或者通过手动进入设置 - >管理应用程序 - >选择您的应用 - >点击强制停止

  4. 当您按主页时,表示您的活动已暂停或类似冻结,当您再次访问应用时,您可以看到您的应用从您离开应用的位置恢复。< / p>