android PackageManager.DONT_KILL_APP 似乎不起作用

Ale*_*sak 6 java android android-studio

在我最近的项目中,我使用 COMPONENT_ENABLED_STATE_DISABLED 标志从启动器隐藏应用程序图标。在这里你可以看到代码:

PackageManager packageManager = SettingsActivity.this.getPackageManager();
ComponentName componentName = new ComponentName(SettingsActivity.this, MainScreen.class);

packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Run Code Online (Sandbox Code Playgroud)

当用户按下复选框时启动。但每次大约 10-15 秒后,应用程序就会突然停止。没有错误或消息。

我不明白,因为我使用了 DONT_KILL_APP 标志。

有什么建议么?

Vik*_*kas 2

首先获取您的应用程序包名称:

String packageName = activity.getPackageName();
Run Code Online (Sandbox Code Playgroud)

然后根据您必须在 Manifest 文件中定义的名称设置clsDefault 。

 <activity-alias
            android:name=".HomeScreen-Default"...>

public static String clsDefault = packageName + ".HomeScreen-Default";
Run Code Online (Sandbox Code Playgroud)

然后用它来设置图标。

activity.getPackageManager().setComponentEnabledSetting(new ComponentName(packageName, clsDefault ),
                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Run Code Online (Sandbox Code Playgroud)