English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dieser Artikel beschreibt die Methode zur Einrichtung eines Weckers in der Android-Programmierung. Hier ist eine Zusammenfassung für alle zur Verfügung gestellt:
Wecker sind im Leben am häufigsten zu sehen, in Android können Wecker durch AlarmManager realisiert werden, AlarmManager-Klasse wird speziell verwendet, um zu einem bestimmten Zeitpunkt bestimmte Aufgaben zu erledigen. AlarmManager führt diese Ereignisse durch die onReceive()-Methode aus, selbst wenn das System im Ruhezustand ist, wird der Betrieb nicht beeinträchtigt. Der Dienst kann durch die Methode Context.getSystemService erhalten werden. Es gibt viele Methoden in AlarmManager, wie folgt:
Methode |
Erklärung |
Cancel |
AlarmManager-Dienst abbrechen |
Set |
AlarmManager-Dienst einstellen |
setInexactRepeating |
Unpräziser Zyklus einstellen |
SetRepeating |
Wiederholungszyklus einstellen |
setTimeZone |
Zeitzone einstellen |
Zunächst wird die AlarmReceiver-Klasse, die den Alarm-Dienst akzeptiert, implementiert und der Benutzer wird mit der Toast-Klasse informiert.
public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generierter Methodenstummel Toast.makeText(arg0, "Der von Ihnen eingestellte Wecker ist abgelaufen", Toast.LENGTH_LONG).show(); } }
Da der BroadcastReceiver-Dienst verwendet wird, muss eine Deklaration im AndroidManifest.xml vorgenommen werden:
<receiver> android:name=".AlarmReceiver" android:process=":remote"> </receiver>
Dann müssen die Zeit für die Einstellung und das Abbrechen des Weckers überwacht werden:
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 { /** Wird aufgerufen, wenn die Aktivität zum ersten Mal erstellt wird. */ 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-generierter Methodenstummel 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-generierter Methodenstummel 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 Auto-generierter Methodenstummel 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("Der Wecker wurde abgebrochen!"); } }); } private String format(int time){ String str = "" + time; if(str.length() == 1){ str = "0" + str; } return str; } }
Das Ergebnis ist wie folgt:
Wecker einstellen
Jetzt ist die Zeit, die Sie für den Wecker eingestellt haben:
Alarmanruf abbrechen:
Interessierte Leser, die mehr über Android-Themen erfahren möchten, können die Themen dieser Website überprüfen: 'Zusammenfassung der Techniken zur Manipulation von Datum und Uhrzeit in Android', 'Einführung und Fortgeschrittene Android-Entwicklungstutorials', 'Zusammenfassung der Techniken zur Fehlerbehebung und häufigsten Fragen in Android', 'Zusammenfassung der Techniken zur Multimedia-Operation in Android (Audio, Video, Aufnahme usw.)', 'Zusammenfassung der Verwendung der grundlegenden Komponenten in Android', 'Zusammenfassung der Techniken zur Verwendung der Ansichten View in Android', 'Zusammenfassung der Techniken zur Verwendung der Layouts in Android' und 'Zusammenfassung der Verwendung der Steuerelemente in Android'.
Ich hoffe, dass der hier beschriebene Inhalt allen bei der Android-Programmgestaltung hilft.
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet bezogen und gehört dem Urheberrecht des Urhebers. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie auf Inhalte stoßen, die möglicherweise Urheberrechtsverletzungen darstellen, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3codebox.com (Bitte ersetzen Sie # durch @ beim Senden einer E-Mail zur Meldung von Verstößen und stellen Sie relevante Beweise zur Verfügung. Sobald nachgewiesen, wird diese Website den涉嫌侵权的内 容立即删除。)