Intent Service-Myintentservice.java を使用しています。その中で、指定された時間に同じインテントサービスを開始するようにアラームマネージャーを配置しました..ログを作成したとき、停止後に開始時間に達するまでミリ秒単位で継続的に実行されます。
コード:
public class Myintentservice extends IntentService{
@Override
protected void onHandleIntent(Intent intent) {
if(within start and end time){
.....Do the required task....
}
else
{
am1=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent locup=new Intent(this,Myintentservice.class);
locupIntent=PendingIntent.getService(this, 0,locup, PendingIntent.FLAG_UPDATE_CURRENT);
Log.i("locup", "postinginterval-->"+Integer.toString(point));
Log.i("ctalarm", "trigger time-->"+Long.toString(hms.getTimeInMillis()));
am1.setRepeating(AlarmManager.RTC_WAKEUP, hms.getTimeInMillis(), point, locupIntent);
}
}
}
onHandleIntent メソッドに if..else ステートメントを含めました。開始時刻と終了時刻が現在の時刻の間にある場合、IF 部分が実行されます。それ以外の場合は、ELSE 部分に移動し、開始時刻に達したときに再度実行されます。開始時刻を hms に渡しました。 .getTimeInMillis() で繰り返しアラームを設定..
サービスは指定された時間に開始および終了しますが、私の質問は、サービスまたはアラームマネージャーが、上記で作成したログを開始時間に達するまで実行しているかどうかです。そのサービスまたはアラームを停止して、指定された時間に開始する可能性はありますか..?