我想在应用启动时根据条件禁用活动,我想再次重新启用它。
getPackageManager().setComponentEnabledSetting(new ComponentName(activityInfo
.packageName,activityInfo.name),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
然后,在用户完成验证后,我尝试使用其他活动中的以下代码再次启用活动。
getPackageManager().setComponentEnabledSetting(new ComponentName(activityInfo
.packageName, activityInfo.name), PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
然而,这不起作用。应用程序在重新启用活动时不会抛出任何错误。它抱怨当我尝试通过其intent过滤器
使用活动时没有可用的活动android.content.ActivityNotFoundException: No Activity found to handle Intent { act=xxx.xxx.phone.action.INCALL flg=0x30000000 pkg=com.freemobile (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1872)
答案 0 :(得分:1)
我不确定我是否明白你要在这里完成什么,但如果你的目标是根据某些条件打开一个活动,我宁愿从你设置逻辑的另一个活动中做到这一点。
假设您的应用打开了活动A,它会检查您拥有的任何条件,如果符合条件,则会启动活动B.
如果我误解了你的目标,请更具体。