java - 主页按钮 Android 3.0、4.0

标签 java android debugging android-fragments android-4.0-ice-cream-sandwich

我有一个 Android 应用程序,其中包含应用程序主页。我覆盖硬件主页按钮以返回 API 级别 10 或更低级别的应用程序主页。

我的应用程序在 Android 版本 3.0 和 4.0 上运行良好。问题在于覆盖主页按钮。我发现了一个讨论( Disable Home Button in Android ICS (4.0) ),其中包括一种以某种方式实现主屏幕的方法。这是@Chalaman 建议的。

我还没明白重点。有没有人可以通过提供一些代码来帮助我更多?

当我们使用:

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

在 list 文件中,当我们单击主页按钮时会弹出一个对话框。它包括主电话页面图标和应用程序图标。我们可以做出选择。如果我们选择应用程序图标,我们将停留在应用程序中。问题是我们也停留在同一个 Activity 中。我如何转到另一个 Activity (我的应用程序的主页)?

我们可以在 API 级别 10 或更低级别实现它:

@Override
    public void onAttachedToWindow() {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
            this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }


    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_HOME: 
        loadStartPage();
            break; 

        }
        return super.onKeyDown(keyCode, event);
    }

    private void loadStartPage() {
        Intent intent = new Intent(getApplicationContext(), StartActivity.class);
        intent.putExtra("user", user);
        intent.putExtra("user_id", user_id);
        intent.putExtra("server", server);
        intent.putExtra("password", password);
        main_activity.startActivity(intent);
    }

如何在 API 级别 11 或更高级别加载起始页?

最佳答案

答案很简单:不要这样做

用户希望他们的应用在整个 Android 平台上保持一致。我无法想象在什么情况下您可以证明覆盖主页按钮是合理的。

<小时/>

编辑:

需要明确的是,有些应用程序似乎会覆盖主页按钮(即汽车模式应用程序,除非您单击“退出”按钮,否则它不会允许您退出该应用程序)。诸如此类的应用程序实际上并没有明确地覆盖“主页按钮”。您可以阅读更多相关信息here .

关于java - 主页按钮 Android 3.0、4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941694/

相关文章:

java - Java 中的简单除法 - 这是错误还是功能?

java - JPA - 通过 jpaql 创建表

android - 在 ubuntu 上安装 android studio

haskell - 调试 haskell 代码的好方法是什么?

javascript - Gulp events.js 中未处理错误的位置 :141

java - *您*使用哪个 Java 调试器

java - 对于JSONArray解析: TRY inside LOOP or LOOP inside TRY?

java - Android - 如何保存复选框状态并在应用程序关闭后,保存在复选框中的值仍然存在?

android - 为 runBlocking 提供 Dispatches.Main 挂起 Android App。为什么?

Android OpenGL ES 和 2D