我正在研究原始PowerControl Widget(SettingsAppWidgetProvider
)中的一段源代码,我找到了以下方法:
@Override
public void onEnabled(Context context) {
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(new ComponentName("com.android.settings",
".widget.SettingsAppWidgetProvider"),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
@Override
public void onDisabled(Context context) {
Class clazz = com.android.settings.widget.SettingsAppWidgetProvider.class;
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(new ComponentName("com.android.settings",
".widget.SettingsAppWidgetProvider"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
有人可以解释一下他们到底做了什么吗?
编辑:对不起,我的问题很糟糕......我知道他们什么时候被打电话但是我无法理解setComponentEnabledSetting
对做什么:D
答案 0 :(得分:3)
Android SDK文档解释了:onDisabled
和onEnabled
。
简而言之,在创建窗口小部件的第一个实例时调用onEnabled
,并在删除/删除窗口小部件的最后一个实例时调用onDisabled
。
编辑:在参考setComponentEnabledSetting
调用时,我认为它们只是用于表示没有窗口小部件处于活动状态,因此可以暂停任何相关的后端处理。