2010-12-29 17 views
9

Come posso limitare i widget Android in modo che l'utente possa sempre creare una sola istanza in qualsiasi momento?Limita Android Widget a un'istanza per dispositivo

Un modo possibile è quello di memorizzare un SharedPreference tra cui una variabile counter e crash, se il conteggio è 1, ma ovviamente io non sono a favore di questa soluzione. ;-)

risposta

7

Come limitare i widget Android in modo che l'utente possa sempre creare una sola istanza in qualsiasi momento?

Non è possibile.

Tuttavia, solo perché l'utente richiede più istanze del widget dell'app non significa che è necessario gestire dati separati per ciascuno. Ignora semplicemente gli ID e utilizza il metodo updateAppWidget() che non accetta ID.

+0

@CommonsWare - avete qualche idea su come inviare una trasmissione generica, senza WidgetIds? Perché sto avendo determinati segnali da un 'Servizio', e non voglio mescolare le operazioni di servizio con il codice Widget/Visualizza. –

+0

@Sebastian Roth: Non riesco a leggere il tuo secondo commento a causa della lunga stringa nel tuo primo commento. Valuta la possibilità di eliminare quel primo commento o di modificare la tua domanda o qualcosa del genere. – CommonsWare

+0

@CommonsWare, fatto. In realtà ho trovato un modo adesso. In astratto: definire una variabile contatore, aggiungere un android: configurare l'attività e gestire il widget. Se è già visibile (contatore == 1), quindi usa 'AppWidgetHost ah = new AppWidgetHost (questo, 1024); ah.deleteAppWidgetId (mAppWidgetId); '. 1024 è il numero magico per Android Launcher. Quella attività di configurazione potrebbe essere trasparente o senza alcuna vista, ma potrebbe fare tutto ciò che abbiamo bisogno di preparare. –