保持对"使用"的引用Intents / PendingIntents,这是一件坏事吗?

时间:2013-11-19 15:49:03

标签: java android android-intent android-alarms

我写了一个类来管理设置和取消警报(通过AlarmManager)。为了方便取消警报,我已将设置警报的意图链接到“名称”,并将其存储在HashMap中,如下所示:

private HashMap<String, PendingIntent> alarmIntentsMap = new HashMap<String, PendingIntent>(); 

设置闹钟的方法示例如下:

public void AddServiceAlarm(Context context, Intent intent, int type, long triggerAtMillies, long intervalMillies, String name) throws Exception
{
    alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    PendingIntent pendingIntent = null;
    pendingIntent = PendingIntent.getService(context, 0, intent, 0);

    alarmManager.setRepeating(type, triggerAtMillies, intervalMillies, pendingIntent);
    alarmIntentsMap.put(name, pendingIntent);

}

取消警报的方法是:

public void CancelAlarm(Context context, String name)
{
    alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    alarmManager.cancel(alarmIntentsMap.get(name));
}

这些方法使用全局:

private AlarmManager alarmManager;

至少对我而言,这似乎是一种在系统中启动和取消警报的优雅方式。在地图中存储对PendingIntents的引用是不是很糟糕?这会被认为是Android中的不良做法吗?我对Android不太熟悉并且很想知道。

0 个答案:

没有答案