English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Detaillierte Erklärung der Methoden zur Einstellung des Weckers in Android

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


Um einen Wecker zu realisieren, ist zunächst die Erstellung einer Klasse erforderlich, die von BroadcastReceiver abgeleitet ist, um den Alarm-Dienst zu akzeptieren, und die onReceive-Methode, um diesen Alarm-Dienst zu akzeptieren, dann durch die Verbindung von Intent und PendingIntent die Alarm-Komponente aufzurufen. Die Weckerzeit wird über den TimerPickerDialog eingestellt, und die onReceiver-Methode wird aufgerufen, wenn die angegebene Zeit erreicht ist. Die Oberfläche wird nach dem Empfang des Alarm-Dienstes durch onReceiver angezeigt.

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涉嫌侵权的内 容立即删除。)

Vielleicht gefällt dir auch