English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Este exemplo mostra como configurar um relógio alarme em programação Android. Compartilho com vocês para referência, conforme a seguir:
Os relógios alarme são muito comuns na vida cotidiana, no Android podem ser implementados através do AlarmManager, a classe AlarmManager é especializada em configurar que algo seja feito em um tempo específico. O AlarmManager executará esses eventos através do método onReceive(), mesmo que o sistema esteja em modo de espera, não afetando o funcionamento. Pode-se obter este serviço através do método getSystemService do Context. Existem muitos métodos no AlarmManager, como os seguintes:
Método |
Descrição |
Cancel |
Cancelar serviço AlarmManager |
Set |
Configurar serviço AlarmManager |
setInexactRepeating |
Configurar período não exato |
SetRepeating |
Configurar período de repetição |
setTimeZone |
Configurar fuso horário |
Primeiro, implemente a classe AlarmReceiver que aceita o serviço Alarm, use Toast para notificar o usuário
public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-metodo de esboço gerado Toast.makeText(arg0, "O tempo do alarme que você configurou chegou", Toast.LENGTH_LONG).show(); } }
Devido ao uso do serviço BroadcastReceiver, é necessário declarar no AndroidManifest.xml:
<receiver> android:name=".AlarmReceiver" android:process=":remote"> </receiver>
Então, é necessário configurar e cancelar o alarme e ouvir o tempo:
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 { /** Chamado quando a atividade é criada pela primeira vez. */ 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 Auto-metodo de esboço gerado 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 Auto-metodo de esboço gerado 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 = "definir o tempo do despertador para" + format(hourOfDay) + : +format(minute); mTextView.setText(tmps); } }, hour, minute, true).show(); } }); mButton2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-metodo de esboço gerado 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("O alarme foi cancelado!"); } }); } private String format(int time){ String str = "" + time; if(str.length() == 1{ str = "0" + str; } return str; } }
O efeito é o seguinte:
Configurar alarme
Agora é a hora configurada para o alarme:
Cancelar alarme:
Leitores interessados em mais conteúdo sobre Android podem consultar as seções especializadas deste site: 'Resumo de técnicas de operação de data e hora no Android', 'Tutorial de entrada e avançamento de desenvolvimento do Android', 'Resumo de técnicas de depuração e soluções de problemas comuns no Android', 'Resumo de técnicas de operação de multimídia no Android (áudio, vídeo, gravação, etc.)', 'Resumo de uso dos componentes básicos do Android', 'Resumo de técnicas do View do Android', 'Resumo de técnicas do layout do Android' e 'Resumo de uso dos controles do Android'.
Espero que o conteúdo deste artigo ajude a todos a melhorar a programação de Android.
Declaração: o conteúdo deste artigo é proveniente da Internet, pertence ao respectivo proprietário, foi contribuído e carregado voluntariamente pelos usuários da Internet, este site não possui direitos de propriedade, não foi editado artificialmente e não assume responsabilidades legais relacionadas. Se você encontrar conteúdo suspeito de infringir direitos autorais, por favor, envie e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas relevantes. Caso seja confirmado, o site deletará imediatamente o conteúdo suspeito de infringir direitos autorais.)