我正在研究原始 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
最佳答案
Android SDK 文档对两者进行了解释:onDisabled
和 onEnabled
。
简而言之,onEnabled
在创建小部件的第一个实例时调用,onDisabled
在删除/移除小部件的最后一个实例时调用。
编辑:引用 setComponentEnabledSetting
调用,我相信它们只是用来指示没有任何小部件处于 Activity 状态,因此可以停止任何相关的后端处理。
关于android - 理解 "setComponentEnabledSettings"的 onEnabled/onDisabled 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4645149/