android - 如何更新带有隐藏图标的Android应用程序

标签 android icons hide android-launcher

我用这段代码来隐藏图标:

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, MainActivity.class); 
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

它工作正常,但是当我尝试更新我的应用程序时,出现此错误:

Error while executing: am start -n "../..main.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=../.main.MainActivity launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } }
Error type 3
Error: Activity class {../..main.MainActivity} does not exist.

Error while Launching activity

如何隐藏图标和仍然可用的应用程序更新(无需手动卸载/安装)?

最佳答案

我认为这是一个设计问题。您需要防止 MainActivity 在禁用时启动。如果您由于某种原因被迫在更新后启动您的 MainActivty,只需先启用您的 MainActivity。您可以在 list 中将 MainActivity 启用状态设置为 false,并在需要时启用它,例如在应用程序类的 onCreate 方法、服务或广播接收器中。在 Manifest 中禁用 MainActivity 可能会阻止它默认启动,这可能是您需要的。这完全取决于您希望如何以及何时禁用和再次启用 MainActivity 的需要。对于最后的评论,您可能知道应用程序不需要 Activity - 有或没有主要 Action - 就可以开始。

关于android - 如何更新带有隐藏图标的Android应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57735861/

相关文章:

android - 将 JSON 用于现代 c++ 和 Gradle Android Studio

java - intent.resolveActivity(getPackageManager()) 究竟在做什么?

java - ListView setOnItemClickListener 不适用于 Switch 小部件

css - SVG 图标 : Styling using CSS based on context

jquery - jquery根据属性值隐藏元素

javascript - 当 <ul> 中只有一个元素存在时隐藏 <ul>

android - 整合我的 Android 应用程序中的 Activity 数量

php - 我如何在购物车图标后面显示购物车中的总元素

macos - MonoMac 恢复应用程序图标更改

jquery - 失去焦点时隐藏分区