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を追加したいと思います

あなたはそれをする必要はありません。1つで、さまざまな特性(アクション文字列、エクストラなど)WakefulIntentServiceに基づいて複数のことを実行できます。Intent同じプロジェクトに複数のWakefulIntentService実装があることはテストされていません-そして誰かがその必要性を私に納得させることができない限り、サポートされていません。

AlarmReceiverのgetListener(Context)メソッドは、単一のAlarmListenerを見つけてトリガーするようです。私が間違っている

いいえ、あなたは正しいです。

アラームをスケジュールしたり、別のPendingIntentを設定したりする別の方法はありますか?

プロジェクトのREADMEの「基本的な使用法」の指示に従ってください。

または、少なくともどのWakefulIntentServiceに作業を送信するかを把握できます

1つだけ持ってくださいWakefulIntentService

2つの異なるサービスをトリガーできる必要があります。

1つだけ持ってくださいWakefulIntentService

于 2013-02-19T11:59:35.073 に答える