如何以编程方式从启动器中删除 activity?

How to remove an activity from showing in the Launcher programmatically?

所以我有一个应用程序使用

在启动器中显示多个活动
<category android:name="android.intent.category.LAUNCHER"/>

我想知道如何以编程方式切换此 on/off,我将需要根据我将收到的一些数据来这样做。这可能吗?如果可以,怎么办。

您可以在 PackageManager 上调用 setComponentEnabledSetting() 来启用和禁用 activity。当您使用 LAUNCHER 类别禁用 activity 时,精心编写的主屏幕实现将删除启动器图标。

但是,请记住,某些主屏幕实现会缓存它们从 PackageManager 获得的信息,因此可能会继续显示图标,直到它们刷新其内容。您对此无能为力。