0

我正在使用 Commonsware 的 WakefulIntentService ( https://github.com/commonsguy/cwac-wakeful ) 在我的 Android 应用程序中触发定期作业(更新图像缓存)。到目前为止一切顺利,但我想添加一个不同的 WakefulIntentService,以不同的时间间隔做不同的工作。

我不确定我是否可以做到这一点以及如何做到这一点。目前,我正在安排这样的警报:

WakefulIntentService.scheduleAlarms(new CacheAlarmListener(), mContext, true);

CacheAlarmListener 的实现是这样的:

@Override
public void scheduleAlarms(AlarmManager alarmManager, PendingIntent pendingIntent, Context context) {
    alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 60000, AlarmManager.INTERVAL_HALF_HOUR, pendingIntent);
}

@Override
public void sendWakefulWork(Context context) {
    WakefulIntentService.sendWakefulWork(context, CacheRefreshService.class);
}

查看源代码,getListener(Context) 方法AlarmReceiver似乎找到并触发了单个 AlarmListener。我错了,还是有另一种方法来安排警报或设置不同的 PendingIntent?

基本上,我希望能够在方法中注册一个新的、单独的AlarmListener,或者至少能够弄清楚WakefulIntentService将作品发送到哪个sendWakefulWork(Context)

4

1 回答 1

1

到目前为止一切顺利,但我想添加一个不同的 WakefulIntentService 来做不同的工作

你不需要这样做。一个人WakefulIntentService可以根据不同的Intent特征(例如,操作字符串、附加功能)做多种事情。在同一个项目中有多个WakefulIntentService实现是未经测试的——除非有人能说服我它的必要性,否则它是不受支持的。

AlarmReceiver 中的 getListener(Context) 方法似乎找到并触发了单个 AlarmListener。我错了吗

不,你是对的。

是否有另一种方法来安排警报或设置不同的 PendingIntent?

按照项目 README 中的“基本用法”说明进行操作

或者至少能够弄清楚将工作发送到哪个 WakefulIntentService

请只拥有一个WakefulIntentService

我需要能够触发两种不同的服务。

请只拥有一个WakefulIntentService

于 2013-02-19T11:59:35.073 回答