2011-01-10 8 views
2

Ich war ein Stück des Quellcodes von der ursprünglichen Powercontrol Widget (SettingsAppWidgetProvider) studiert, und ich habe die folgenden Methoden gefunden:onEnabled/onDisabled Methoden mit „setComponentEnabledSettings“ Verständnis

@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); 
    } 

Kann mir jemand erklären, was sie genau tun?

edit: Ich bin meine Frage leider war schlecht formulated..I wissen, wenn sie aufgerufen werden, aber ich kann nicht verstehen, was das setComponentEnabledSetting Paar tun: D

Antwort

3

Die Android SDK-Dokumentation erklären beide: onDisabled und onEnabled .

Kurz gesagt, onEnabled wird aufgerufen, wenn die erste Instanz des Widgets erstellt wird, und onDisabled wird aufgerufen, wenn die letzte Instanz des Widgets gelöscht/entfernt wird.

Edit: in Bezug auf die setComponentEnabledSetting Anrufe, glaube ich, sie einfach verwendet, um anzuzeigen, dass keine Widgets aktiv sind und daher alle damit verbundenen Backend-Verarbeitung angehalten werden kann.

+0

Es tut mir leid, meine Frage war schlecht formuliert..ich weiß, wenn sie angerufen werden, aber ich kann nicht verstehen, was das innere setComponentEnabledSetting-Paar tun: D – Salv0