0

私はAndroid2.3**を使用してモバイルとタブレット用のアプリケーションを開発しています

いくつかの操作、つまり操作Aと操作Bを実行したいと思います。どちらもある程度の処理を実行します。
操作Aと操作Bを1時間間隔で繰り返したい操作
Aは操作Bの10分前に実行され
ます操作Bは時間が0.00、1.00、2.00、3.00のときに実行されます。 ...、23.00(私は鉄道時間を使用しているので、午前または午後と混同されません)。
操作-Aは、時間が0.50、1.50、2.50、3.50、....、23.50
のときに実行されます。上記のシナリオは、Androidで可能かどうかに関係なく可能です。
すべてが上記のシナリオのためのあなたの考えを与えます。

AlarmManagerを使用する予定です。AlarmManagerはAndroidシステムサービスです。1時間ごとにアプリケーションに通知するために使用されます。
Operation-AにはAlarmManagerを使用し、Operation-Bには別のAlarmManagerを使用する予定です。
私の疑問は、Androidでは、単一のアプリケーションで異なる繰り返し値を持つ複数のAlarmManagerを使用することは可能ですか?


あなたのアイデアはすべて大歓迎です。

4

1 に答える 1

1

はい、このタスクは、機能を繰り返し実行するAlarmManagerの助けを借りて実行されます。まず、イベントを受信する2つのレシーバークラスを作成する必要があります。次に、繰り返しアラームを設定する必要があります。

private void setAlarm1()
    {
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.HOUR, 1);
        Intent intent = new Intent(this, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
        intent, PendingIntent.FLAG_CANCEL_CURRENT);

        am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*60, pendingIntent);
    }
    private void setAlarm2()
    {
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.MINUTE, 50);
        Intent intent = new Intent(this, AlarmReceiver_1.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
        intent, PendingIntent.FLAG_CANCEL_CURRENT);

        am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*50, pendingIntent);
    }

public class AlarmReceiver extends BroadcastReceiver {


     @Override
     public void onReceive(Context context, Intent intent) {

     }

    }
public class AlarmReceiver_1 extends BroadcastReceiver {


     @Override
     public void onReceive(Context context, Intent intent) {

     }

    }

メニフェストでは、以下のようにクラスを宣言する必要があります。

 <receiver android:name=".AlarmReceiver" />
             <receiver android:name=".AlarmReceiver_1" />
于 2012-11-23T07:26:38.037 に答える