禁用启动器活动后,android重新安装失败
Posted
技术标签:
【中文标题】禁用启动器活动后,android重新安装失败【英文标题】:android reinstall fails after making the launcher activity disabled 【发布时间】:2012-05-10 22:02:08 【问题描述】:我想从应用列表和最近的应用列表中删除我的应用。所以我尝试使用以下代码禁用我的主/启动器活动:
ComponentName componentToDisable = new ComponentName(context, MainActivity.class);
context.getPackageManager().setComponentEnabledSetting(componentToDisable,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
这可以完成工作。但是现在我尝试重新安装该应用程序,但它无法显示“活动 MainActivity 类不存在”。如果我卸载该应用程序,安装将再次运行。我该如何处理这个问题?非常感谢您的时间和帮助
【问题讨论】:
【参考方案1】:我发现我必须在重新安装之前启用该活动。 这可以通过让广播接收器监听 package_add / remove 事件并在 onReceive 中再次启用活动来完成。
public void onReceive(Context context, Intent intent)
Log.i("Receiver","got event");
ComponentName componentToDisable = new ComponentName(context,BlockableComponentActivity.class);
context.getPackageManager().setComponentEnabledSetting(componentToDisable,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
接收方的清单摘录:
<receiver android:name="PackageChangeReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
【讨论】:
以上是关于禁用启动器活动后,android重新安装失败的主要内容,如果未能解决你的问题,请参考以下文章
安装 Android SDK Build-Tools 26 后无法启动活动 ComponentInfo...
安装应用程序后在 android studio 中启动活动时出错
无法打开内核设备“.VMCIDevVMX”: 操作成功完成。是否在安装 VMware Workstation 后重新引导? 模块“DevicePowerOn”启动失败。 未能启动虚拟机。
无法打开内核设备“.VMCIDevVMX”: 操作成功完成。是否在安装 VMware Workstation 后重新引导? 模块“DevicePowerOn”启动失败。 未能启动虚拟机。