我将我的 Activity 设置为默认启动器以拦截主页按钮点击,如下所示:
<activity
android:name=".ExampleActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
当我的 Activity ExampleActivity
启动时,如果我单击 home 键,系统会提示我进行选择。如果我选择将此设置为我的默认值并选择我的 Activity ,我将按照需要停留在我的 Activity 中。
问题是,当我离开 Activity 时,我尝试从默认启动器中删除我的 Activity ,但没有成功。
我试过:
ComponentName componentName = new ComponentName(
"com.example.exampleactivity",
"com.example.exampleactivity.class");
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
和:
PackageManager pm = getActivity().getPackageManager();
ComponentName name = new ComponentName(this, "com.example.exampleactivity.class");
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
但我对 home 的指定从未被删除。
有没有人有解决上述问题的有效方法?
我只是不想让主页按钮成为特定 Activity 的默认按钮,而不是我的整个应用程序。当我离开 Activity 时,它应该被删除并恢复为默认值。
最佳答案
如果您要清除其默认设置的是您的应用,您只需调用:
getPackageManager().clearPackagePreferredActivities(getPackageName());
然后,为了显示选择使用哪个启动器的对话框,使用:
final Intent intent=new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
关于android - 删除 Activity 作为默认启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12594192/