2016-07-23 10 views
0

こんにちは私のアプリケーションのデータを更新して1日1回それを繰り返すバックグラウンドサービスを作りたいと思っています。私は次のコードを持っています:onbootを使ったバックグラウンドの繰り返しタスク

public class OnBoot extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // Create Intent 
     context.startService(new Intent(context, BackgroundServiceHandler.class)); 
    } 

} 

私は、繰り返しアラームの時間を選択できるように設定メニューがあります。 アラームマネジャーの時刻をリセットするにはどうしたらいいですか?私はどこでアラームマネージャのコードを入れなければならないのですか?サービスやインセンティブサービスを利用する必要がありますか?サービスが実行されているかどうかを確認するには?

アラームマネージャコード:

Intent intent = new Intent(MainActivity.this, AlarmService.class); 
    intent.putExtra("i", 3); 
    PendingIntent pi = PendingIntent.getService(MainActivity.this, 9, intent, 0); 

    // every day at 9 am 
    Calendar calendar = Calendar.getInstance(); 

    // if it's after or equal 9 am schedule for next day 
    if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 9) { 
     calendar.add(Calendar.DAY_OF_YEAR, 1); // add, not set! 
    } 
    calendar.set(Calendar.HOUR_OF_DAY, 9); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.SECOND, 0); 

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

    alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 
      AlarmManager.INTERVAL_DAY, pi); 

答えて

0
  • 私はalarmmanagerの時間をリセットするにはどうすればよいですか?私はアラームマネージャのコードを配置する必要が

How to edit/reset Alarm Manager?

  • ?例えば

あなたは、静的メソッドでそのコードを配置し、ユーザーが時間を設定した場所からとOnBootReceiverからそれを呼び出すことができます。イベントを受け取るクラスを実装する方法OnBootanswerを確認してください。

  • 私は、サービスやintentserviceを使用する必要がありますか?サービスが実行されているかどうかを確認する方法

Service vs IntentService

Check if service is running on Android?

関連する問題