Android:以编程方式禁用和启用活动在android中不起作用

时间:2016-02-10 12:40:52

标签: android android-activity

我想在应用启动时根据条件禁用活动,我想再次重新启用它。

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)

1 个答案:

答案 0 :(得分:1)

我不确定我是否明白你要在这里完成什么,但如果你的目标是根据某些条件打开一个活动,我宁愿从你设置逻辑的另一个活动中做到这一点。

假设您的应用打开了活动A,它会检查您拥有的任何条件,如果符合条件,则会启动活动B.

如果我误解了你的目标,请更具体。