0

我从活动A启动活动B,现在我想在按home键时回到活动A而不是Launcher,如何实现?

我发现了一个类似的情况,LockPatternKeyguardView,它启动一个紧急拨号器,然后按home键,可以再次回到LockPatternKeyguardView,怎么做?

4

6 回答 6

1

您不能覆盖主页按钮的行为,因为如果这样做,您可以让用户永远不会退出您的应用程序,而 android 不会让您这样做。

于 2012-10-15T08:40:40.763 回答
0

Home 按钮是一个非常危险的覆盖按钮,因此,Android 不会让你覆盖它的行为,就像你做 BACK 按钮一样。

当按下 Home 按钮时,会在您的活动中调用 onStop 方法。所以你可以做的是添加finish(); 在 onStop 方法中销毁您的活动。最终将引发 onDestroy 方法以确认您的活动已完成。

于 2012-10-15T08:33:28.843 回答
0
case R.id.home:                     
        Intent i = new Intent(this,Aactivity.class);
        startActivity(i);
        return  true;    

我只知道我呈现的一种方式....

于 2012-10-15T08:46:59.970 回答
0

按下主页按钮意味着用户想要退出您的应用程序,您不应该覆盖它来留住用户。此外,只有主页按钮才能让用户摆脱卡住的应用程序。考虑将菜单项设置为“主页”或覆盖后退按钮。

于 2012-10-15T08:47:30.047 回答
0

您可以在按下按钮时启动您的活动。为此,您必须将活动的操作声明为 HOME。

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.HOME" /> 
</intent-filter>

但是这样做也有缺点:

  1. 当您按下主页按钮时,将出现一个选择器。这将让您决定要启动哪个活动。由于默认启动器应用程序也具有相同的操作 (HOME),它会询问您要启动哪个活动。
  2. 当用户按下主页按钮时,您可以将您的活动设为默认活动。您可以在按下主页按钮后获得选择器对话框时执行此操作,只需检查选择器对话框上出现的复选框即可。

在第二种情况下,您可以在按下主页按钮时将您的活动设置为默认活动,但它不会启动默认主页屏幕,这在您想要启动其他应用程序时非常有用。所以总是建议不要处理主页按钮。

您也不能像其他键事件一样处理 Home 键(如返回键、菜单键等)

于 2012-10-15T08:44:23.663 回答
0

当按下主页按钮时,活动进入 onStop() 状态。因此覆盖活动 B 中的 onStop() 方法并完成活动。如下所示,

 protected void onStop() {
        finish();
        super.onStop();
    }
于 2012-10-15T09:16:04.900 回答