0
MyBroadCastサービスが
パブリッククラスBackupBroadCastがWakefulBroadcastReceiver {私はアプリケーション起動時にサービスを開始する方法
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, BackupService.class);
context.startService(i);
}
}
たMyService
public class BackupService extends Service {
public int REQUEST_CODE = 99999;
@Override
public void onCreate() {
Log.d("Service", "onCreate");
ativarTemporizador();
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//HERE COME THE CODE TO EXECUTE EVERY x time the alarm call the service
Log.d("Service", "onStartCommand");
return super.onStartCommand(intent, flags, startId);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void ativarTemporizador() {
Log.d("Service", "Start Timer");
Intent intent = new Intent(getApplicationContext(), BackupBroadCast.class);
final PendingIntent pIntent = PendingIntent.getBroadcast(this, REQUEST_CODE,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() /*Start Right NOW*/,
(10000 /*Repeat Every 10seconds*/), pIntent);
}
}
を拡張して繰り返しませんunkn OW理由アラームは、(iが設定のような)各10秒サービス
それは
04-22 23:13:47.118 -> onCreate
04-22 23:13:47.118 -> Start Timer
04-22 23:13:47.118 -> onStartCommand
04-22 23:14:10.758 -> onStartCommand
04-22 23:15:10.868 -> onStartCommand
04-22 23:16:11.288 -> onStartCommand
04-22 23:16:48.998 -> onStartCommand
04-22 23:18:11.498 -> onStartCommand
がどのように私はそれをオンデマンドごと×時間を実行させることができ、ランダムな時間を持っているを実行していない(私は、ユーザーの選択肢を提供します私は、API 16> =を使用する必要があるため)所定の時間に
に感謝[ 'AlarmManager'](http://developer.android.com/reference/android/app/AlarmManager.html)のためのドキュメントを参照してください。 KitKatの 'targetSdkVersion'> = 19の場合、' setRepeating() 'は不正確です。あなたは 'setExact()'を使う必要があり、起動するたびに必要な間隔でアラームを再設定する必要があります。 –