ブロードキャスト レシーバーに定期的なアラームを設定させ、サービスを起動させます。残念ながら、これによりサービスが繰り返し呼び出されることはありません (logcat に基づく)。時間間隔にもさまざまな値を試しました。誰か助けてくれませんか?(Android 3.2 Motorola xoom で Eclipse を使用してテストしています)
以下は、ブロードキャスト レシーバーのコードです。
alarm = (AlarmManager) arg0.getSystemService(Context.ALARM_SERVICE);
Intent intentUploadService = new Intent (arg0, com.vikramdhunta.UploaderService.class);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 3);
PendingIntent pi = PendingIntent.getBroadcast(arg0, 0, intentUploadService , 0);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 5, pi);
以下は Service クラスのコードです
public UploaderService()
{
super("UploaderService");
mycounterid = globalcounter++;
}
@Override
protected void onHandleIntent(Intent intent) {
synchronized(this)
{
try
{
for (int i = 1;i < 5;i++)
{
// doesn't do much right now.. but this should appear in logcat
Log.i(TAG,"OK " + globalcounter++ + " uploading..." + System.currentTimeMillis());
}
}
catch(Exception e)
{
}
}
}
@Override
public void onCreate() {
super.onCreate();
Log.d("TAG", "Service created.");
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
Log.i(TAG, "Starting upload service..." + mycounterid);
return super.onStartCommand(intent,flags,startId);
}