2015-07-05 2 views
-1

Я пытаюсь изменить 0 Alarm (): например, если я нажимаю кнопку «1 день», будильник должен быть установлен таким образом, чтобы он повторялся каждый день и так далее. но я понятия не имею, как этого добиться, у меня есть код для повторения тревоги с заранее определенным временемУстановка AlarmManager Time onClick android

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent intent = new Intent(this, NotifyService.class); 
     PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 
       PendingIntent.FLAG_CANCEL_CURRENT); 
     AlarmManager am = (AlarmManager) this 
       .getSystemService(Context.ALARM_SERVICE); 
     long recurring = (1 * 60000 * 60 * 24); // repeat every 24 hrs 
     am.setRepeating(AlarmManager.RTC, Calendar.getInstance() 
       .getTimeInMillis(), recurring, sender); 
    } 

    public void set1day(View view) { 
     //... 
    } 

    public void set3days(View view) { 
     //... 
    } 

    public void set7days(View view) { 
     //... 
    } 
} 

ответ

1

По умолчанию для интервала есть константы по умолчанию. Вы должны использовать их вместо вычисления секунд для интервалов. как этот:

за один день интервала

public void set1day(View view) {  
    am.setInexactRepeating(AlarmManager.RTC, Calendar.getInstance() 
       .getTimeInMillis(), AlarmManager.INTERVAL_DAY, sender); 
} 

в течение 3 дней интервальных

public void set3day(View view) { 
    am.setInexactRepeating(AlarmManager.RTC, Calendar.getInstance() 
       .getTimeInMillis(), AlarmManager.INTERVAL_DAY*3, sender); 
} 

для любого п дней интервального

am.setInexactRepeating(AlarmManager.RTC, Calendar.getInstance() 
      .getTimeInMillis(), AlarmManager.INTERVAL_DAY*n, sender); 

Кроме того, как из API 19, все повторяющиеся сигналы тревоги неточны. Используйте setInexactRepeating, чтобы избежать разряда батареи.

Смежные вопросы