2012-03-11 62 views
0

任何人都可以告诉我如何在Android应用程序中创建一个从当前时间开始的闹钟,并在特定时间内每10分钟重复一次?在特定时间内发出警报Android应用程序

例如,根据不同情况,警报应该重复的时间为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);