我有一个 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/