按下主页按钮重启我的应用活动

时间:2016-05-02 20:55:47

标签: android

我想禁用所有3个按钮后退按钮任务和主页按钮仅适用于1个活动,我找到了一种后退和任务按钮工作方式。

但是我面临着主页按钮禁用的问题..如果禁用有点复杂,只需在用户按下主页按钮时重启我的应用活动,也会对我有用!

任何建议或帮助我该怎么办?

以下是我的代码

@Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode==KeyEvent.KEYCODE_HOME)
        {

            return false;
        }
        else if (keyCode==KeyEvent.KEYCODE_BACK)
        {

        }
        if (keyCode==KeyEvent.KEYCODE_TAB)
        {

        }

        else {
            return super.onKeyUp(keyCode, event);
        }
        return  false;
    }

4 个答案:

答案 0 :(得分:2)

如果有人在寻找以下答案可能有帮助, 只需在清单活动代码

中添加这一行
 android:launchMode="singleTop"

<activity
        android:name=".Ui.MainActivity"
        android:label="@string/app_name"
        android:launchMode="singleTop"
        android:theme="@style/AppTheme.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

答案 1 :(得分:0)

不幸的是,Android的新版本阻止我们覆盖主页按钮...对不起!

但是,按下按钮时可以执行某些操作。您需要覆盖onPause()

编辑:我试过这个,它有效(尽管它真的很难看......):

@Override
public void onPause() {
    super.onPause();

    Log.d(TAG, "Pause");
    Intent i = new Intent(MainActivity.this, MainActivity.class);
    startActivity(i);
}

答案 2 :(得分:0)

您可以尝试在清单中的活动中使用此行。

<category android:name="android.intent.category.HOME"/>

使用此功能,当用户按下主页按钮时,系统将询问您是否要打开一次或始终,选择始终,当用户按下主页按钮将打开带有声明的分类主页的活动

Why is category HOME required?

答案 3 :(得分:-1)

我认为你需要重写onKeyDown

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_HOME)) {
        //stuff here!                 
        return true;
    }
    return super.onKeyDown(keyCode, event);
}