English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Этот пример рассказывает о методе настройки будильника Android-программирования. Поделюсь с вами для вашего参考, подробности см. ниже:
Будильник является наиболее распространённым в жизни, в Android его можно реализовать с помощью AlarmManager, который специально предназначен для выполнения определённых действий в указанное время. AlarmManager исполнит эти события через метод onReceive(), даже если система находится в спящем режиме, это не повлияет на её работу. Получить этот сервис можно через метод getSystemService(Context) класса Context. В AlarmManager множество методов, например:
Метод |
Объяснение |
Cancel |
Отключение услуги AlarmManager |
Set |
Настройка услуги AlarmManager |
setInexactRepeating |
Настройка не точной периодичности |
SetRepeating |
Настройка периодичности повторения |
setTimeZone |
Настройка часового пояса |
Сначала реализуйте класс AlarmReceiver, который принимает Alarm сервис, и используйте класс Toast для уведомления пользователя
public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Автоматически сгенерированный метод Toast.makeText(arg0, "Время, которое вы установили для будильника, наступило", Toast.LENGTH_LONG).show(); } }
Поскольку используетсяслужба BroadcastReceiver, поэтому необходимо объявить её в файле AndroidManifest.xml:
<receiver android:name=".AlarmReceiver" android:process=":remote"> </receiver>
Затем необходимо настроить время включения и отключения будильника для мониторинга:
package cn.edu.pku; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.TimePickerDialog; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.TimePicker; public class AlarmActivity extends Activity { /** Вызвано при первом создании активности. */ Button mButton1; Button mButton2; TextView mTextView; Calendar calendar; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); calendar=Calendar.getInstance(); mTextView=(TextView)findViewById(R.id.TextView01); mButton1=(Button)findViewById(R.id.Button01); mButton2=(Button)findViewById(R.id.Button02); mButton1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Автоматически сгенерированный метод calendar.setTimeInMillis(System.currentTimeMillis()); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); new TimePickerDialog(AlarmActivity.this, new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // TODO Автоматически сгенерированный метод calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Intent intent = new Intent(AlarmActivity.this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(AlarmActivity.this, 0, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), (24 * 60 * 60 * 1000), pendingIntent); String tmps = "Настройка времени будильника: " + format(hourOfDay) + ":" +format(minute); mTextView.setText(tmps); } }, hour, minute, true).show(); } }); mButton2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Автоматически сгенерированный метод Intent intent = new Intent(AlarmActivity.this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(AlarmActivity.this, 0, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.cancel(pendingIntent); mTextView.setText("Будильник отменен!"); } }); } private String format(int time){ String str = "" + time; if(str.length() == 1){ str = "0" + str; } return str; } }
Эффект будет следующим:
Установить будильник
Время достигло времени установки будильника:
Отменить будильник:
Дополнительную информацию о содержании Android, которая может вас заинтересовать, можно найти в разделе: "Сводка技巧 по работе с датой и временем в Android", "Введение и продвинутый курс по разработке Android", "Сводка技巧 по отладке и решению проблем в Android", "Сводка技巧 по работе с мультимедиа в Android (аудио, видео, запись и т.д.), "Сводкаusage по базовым компонентам в Android", "Сводкаusage по компонентам View в Android", "Сводкаusage по компонентам layout в Android" и "Сводкаusage по компонентам в Android".
Надеюсь, что описание статьи поможет вам в разработке приложений для Android.
Заявление: содержимое статьи предоставлено из Интернета, авторское право принадлежит автору, контент предоставлен пользователями Интернета, веб-сайт не имеет права собственности, не был обработан вручную, и не несет ответственности за связанные с этим юридические обязательства. Если вы обнаружите содержимое,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении и предоставьте соответствующие доказательства. Если подтвердится, сайт немедленно удалят涉嫌侵权的内容.