2012-03-11 10 views
0

現在の時刻から始まり、特定の時間に10分ごとに繰り返されるアンドロイドアプリケーションでアラームを作成するにはどうすればよいですか?特定の時間中のアラーム

例えば、異なる場合によっては、アラームが繰り返される時間は2時間で、別の場合は1時間30分となるなどです。

これを行う方法はありますか?

は、実際に私は、以下に示すように、私は、ウェブからそれを取ったコードを使用:

パブリッククラスMyAlarmServiceは、サービス{

@Override 
    public void onCreate() { 

     // TODO Auto-generated method stub 

    } 

    @Override 
    public IBinder onBind(Intent intent) { 

     // TODO Auto-generated method stub 

     Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG) 
       .show(); 

     return null; 

    } 

    @Override 
    public void onDestroy() { 

     // TODO Auto-generated method stub 

     super.onDestroy(); 

     Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG) 
       .show(); 

    } 

    @Override 
    public void onStart(Intent intent, int startId) { 

     // TODO Auto-generated method stub 

     super.onStart(intent, startId); 

     Toast.makeText(this, "...", Toast.LENGTH_LONG) 
     .show(); 

    } 

    @Override 
    public boolean onUnbind(Intent intent) { 

     // TODO Auto-generated method stub 

     Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG) 
       .show(); 

     return super.onUnbind(intent); 

    } 

} 

答えて

0

あなたはBroadcastReceiverとPendingIntentを使用することができますを拡張します。

public class EventAlarmReceiver extends BroadcastReceiver { 

private long alarmTime; 

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

    //declare the new time for the alarm, you can use a time stamp, for example in the next hour 
    alarmTime = Calendar.getInstance().getTimeInMillis()+(60*60000); 

      //set an intent to the Receiver 
    Intent intent = new Intent(context, EventAlarmReceiver.class); 

      //set an PendingIntent to the Intent 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
       getApplicationContext(), 234324243, intent, 0); 

      //add to the System Alarm Manager 
    AlarmManager alarmManager = (AlarmManager) getSystemService(Activity.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC, alarmTime, pendingIntent); 
} 

}

とアクティビティにアラームを起動します:

Intent intent = new Intent(context, EventAlarmReceiver.class); 

     PendingIntent pendingIntent = PendingIntent.getBroadcast(
       getApplicationContext(), 234324243, intent, 0); 

     AlarmManager alarmManager = (AlarmManager) getSystemService(Activity.ALARM_SERVICE); 
     alarmManager.set(AlarmManager.RTC, time, pendingIntent); 
まず、BroadcastReceiverを宣言します
関連する問題