如何开启和关闭开机自启动
public abstract void?setComponentEnabledSetting?(ComponentName?componentName, int newState, int flags)
?
這個函數的英文注釋是,Set the enabled setting for a package component (activity, receiver, service, provider). This setting will override any enabled state which may have been set by the component in its manifest.
為什么要關閉組件??
在用到組件時,有時候我們可能暫時性的不使用組件,但又不想把組件kill掉,比如創建了一個broadcastReceiver廣播監聽器,用來想監聽第一次開機啟動后獲得系統的許多相關信息,并保存在文件中,這樣以后每次開機啟動就不需要再去啟動該服務了,也就是說如果沒有把receiver關閉掉,就算是不做數據處理,但程序卻還一直在后臺運行會消耗電量和內存,這時候就需要把這個receiver給關閉掉。?
如何關閉組件??
關閉組件其實并不難,只要創建packageManager對象和ComponentName對象,并調用packageManager對象的setComponentEnabledSetting方法。
componentName:組件名稱?
newState:組件新的狀態,可以設置三個值,分別是如下:?
不可用狀態:COMPONENT_ENABLED_STATE_DISABLED?
可用狀態:COMPONENT_ENABLED_STATE_ENABLED?
默認狀態:COMPONENT_ENABLED_STATE_DEFAULT?
flags:行為標簽,值可以是DONT_KILL_APP或者0。 0說明殺死包含該組件的app
?
final ComponentName receiver = new ComponentName(context, ToggleReceiver.class);?
?final PackageManager pm = context.getPackageManager();?
?count++;?
?if (count > 1) {?
?pm.setComponentEnabledSetting(receiver,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP); }
?
如果設置一個app的mainActivity為COMPONENT_ENABLED_STATE_DISABLED狀態
則不會再launcher的程序圖標中發現該app
調用app的setComponentEnabledSetting改變了/data/system/packages.xml 文件中
?
?
<package name="你的app的包名"?
<enabled-components>
<item name="包名.xxActivity" />
</enabled-components>
</package>
轉載于:https://www.cnblogs.com/ihsan-gaozp/p/3277673.html
總結
以上是生活随笔為你收集整理的如何开启和关闭开机自启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向app store提交应用时,必须点“
- 下一篇: 激活网卡