setComponentEnabledSetting 如何工作?

How setComponentEnabledSetting works?

我在 AndroidManifest.xml 中启用了服务。我想从我的代码中禁用它:

getPackageManager().setComponentEnabledSetting(
    serviceName, 
    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
    PackageManager.DONT_KILL_APP);

如果我像上面那样禁用该服务,它会永远禁用吗?还是不行?

它将被禁用,直到您启用它或用户卸载您的应用程序。

是的,设置是永久性的 直到 重新安装(删除应用程序,重新安装)或使用 setComponentEnabledSetting() 重新设置新值。此外,作为边界案例,具有超级用户权限的人可以重置您的应用程序。

详情请阅读 this答案。