Sto sviluppando un'applicazione compiti semplici in Android e ho bisogno per creare le notifiche tramite un AlarmManager. Il mio problema è che ho alcuni allarmi che dovrebbero essere eliminati -e quindi la loro notifications- ma non sono, così ho deciso -Seguendo messaggi come Delete alarm from AlarmManager using cancel() - Android per rendere l'AlarmManager una variabile statica così la stessa istanza può essere raggiunta da tutta app. Il modo in cui sto facendo questo sta avendo il seguente metodo nella mia classe principale:AlarmManager statica in Android
public static AlarmManager getAlarmManagerInstance() {
if (sAlarmManager == null && sContext != null)
sAlarmManager = (AlarmManager) sContext
.getSystemService(Context.ALARM_SERVICE);
return sAlarmManager;
}
e nella variabile del sContext
vengono istanziati in questo modo:
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_main);
sContext = this;
initActionBar();
}
E 'una buona idea creare un modello singleton da questa variabile? C'è un approccio migliore?
Grazie mille in anticipo.
utilizzare lo stesso ID per creare intento attesa .. che farà lo stesso lavoro –
ma sto usando gli id delle attività che voglio creare/modificare per creare l'intento in sospeso, in modo come 'PendingIntent pendingFirstAlarmIntent = PendingIntent.getBroadcast ( \t \t \t \t \t questo, mGoal.getId() intValue(), l'intenzione, \t \t \t \t \t PendingIntent.FLAG_ONE_SHOT);. '.. È ancora lo stesso? – noloman
Sì, questo è lo stesso ... Se non si sta annullando l'allarme, provare a utilizzare bandiere diverse ... –