English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
L'exemple de cet article décrit la méthode de configuration de l'alarme en programmation Android. Partagé avec tous pour référence, voici les détails :
L'alarme est l'un des éléments les plus courants dans la vie, en Android, elle peut être réalisée à l'aide d'AlarmManager, la classe AlarmManager est spécialement utilisée pour définir des tâches à effectuer à une heure spécifique. AlarmManager exécutera ces événements via la méthode onReceive(), même si le système est en mode veille, cela n'affectera pas le fonctionnement. Il est possible d'obtenir ce service via la méthode getSystemService du Context. Le nombre de méthodes dans AlarmManager est important, telles que :
Méthode |
Explication |
Cancel |
Annuler le service AlarmManager |
Set |
Définir le service AlarmManager |
setInexactRepeating |
Définir le cycle d'alarme imprécis |
SetRepeating |
Définir le cycle de répétition |
setTimeZone |
Définir le fuseau horaire |
Tout d'abord, implémenter la classe AlarmReceiver pour recevoir le service Alarm, utiliser la classe Toast pour informer l'utilisateur
public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-généré par stub de méthode Toast.makeText(arg0, "l'heure de l'alarme que vous avez réglée est arrivée", Toast.LENGTH_LONG).show(); } }
En raison de l'utilisation du service BroadcastReceiver, il est nécessaire de le déclarer dans AndroidManifest.xml :
<receiver> android:name=".AlarmReceiver" android:process=":remote"> </receiver>
Ensuite, il faut configurer et annuler l'alarme pour écouter les temps :
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 { /** Called when the activity is first created. */ 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-généré par stub de méthode 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-généré par stub de méthode 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 = "Réglage de l'heure de l'alarme" + format(hourOfDay) + : +format(minute); mTextView.setText(tmps); } }, hour, minute, true).show(); } }); mButton2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-généré par stub de méthode 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("L'alarme a été annulée !"); } }); } private String format(int time){ String str = "" + time; if(str.length() == 1){ str = "0" + str; } return str; } }
L'effet est le suivant :
Configurer l'alarme
L'heure actuelle est venue de la configuration de l'alarme :
Annuler l'alarme :
Les lecteurs intéressés par plus de contenu sur Android peuvent consulter les sujets spéciaux de ce site : "Résumé des techniques d'opération des dates et des heures Android", "Tutoriel d'entrée et de niveau supérieur de développement Android", "Résumé des techniques de débogage et des solutions de problèmes courants Android", "Résumé des techniques d'opération multimédia Android (audio, vidéo, enregistrement, etc.)", "Résumé des utilisations des composants de base Android", "Résumé des techniques des vues View Android", "Résumé des techniques des layouts layout Android" et "Résumé des utilisations des contrôles Android"
J'espère que cette description peut aider les développeurs Android.
Déclaration : le contenu de cet article est issu du réseau, propriété des auteurs respectifs, contribué et téléversé par les utilisateurs d'Internet de manière spontanée. Ce site n'en possède pas la propriété, n'a pas été édité par l'homme, et n'assume pas la responsabilité des responsabilités juridiques pertinentes. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)