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

Metodo dettagliato di configurazione dell'orologio su Android

Questa guida esemplare spiega il metodo di configurazione dell'orologio di programmazione Android. Condiviso con tutti per riferimento, ecco i dettagli:

L'allarme è molto comune nella vita quotidiana, in Android può essere implementato tramite AlarmManager, AlarmManager è una classe speciale utilizzata per impostare che venga completato un'azione a un tempo specifico. AlarmManager eseguirà questi eventi tramite il metodo onReceive(), anche se il sistema è in stato di standby, non influenzerà il funzionamento. Può essere ottenuto tramite il metodo getSystemService(Context) del Context. Ci sono molti metodi in AlarmManager, come elencato di seguito:}}

Metodo

Spiegazione

Cancel

Cancellare il servizio AlarmManager

Set

Impostare il servizio AlarmManager

setInexactRepeating

Impostare il ciclo di ripetizione impreciso

SetRepeating

Impostare il ciclo di ripetizione

setTimeZone

Impostare il fuso orario


Per implementare l'allarme, è necessario creare una classe che eredita BroadcastReceiver e implementare il metodo onReceive per ricevere questo servizio Alarm, quindi connettersi a AlarmComponent attraverso l'Intent e PendingIntent. Impostare l'ora dell'allarme utilizzando TimerPickerDialog, quando l'ora impostata è giunta, il metodo onReceiver riceve il servizio Alarm e visualizza l'interfaccia.;

Prima di tutto, implementare la classe AlarmReceiver che riceve il servizio Alarm, utilizzare Toast per avvisare l'utente;

public class AlarmReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
    Toast.makeText(arg0, "L'ora dell'allarme che hai impostato è giunta", Toast.LENGTH_LONG).show();
  }
}

Poiché è stato utilizzato il servizio BroadcastReceiver, è necessario dichiararlo ulteriormente in AndroidManifest.xml:;

<receiver
  android:name=".AlarmReceiver"
  android:process=":remote">
</receiver>

Poi bisogno di impostare e cancellare i tempi di allarme e ascoltare:;

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 {
  /** Chiamato quando l'attività viene creata per la prima volta. */
  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-generated method stub
        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-generated method stub
            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-generated method stub
        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("La sveglia è stata annullata!");
      }
    });
  }
  private String format(int time){
    String str = "" + time;
    if(str.length() == 1){
      str = "0" + str;
    }
    return str;
  }
}

L'effetto è il seguente:

Imposta sveglia

Ora è il momento impostato per la sveglia:

Annulla sveglia:

Per chi è interessato a ulteriori contenuti relativi a Android, i lettori possono consultare le sezioni speciali di questo sito: 'Concetti di gestione delle date e dell'ora Android', 'Guida di base e avanzata per lo sviluppo Android', 'Concetti di debug e soluzioni di problemi comuni Android', 'Concetti di gestione dei media Android (audio, video, registrazione, ecc.)', 'Concetti di utilizzo dei componenti di base Android', 'Concetti di utilizzo delle viste View Android', 'Concetti di utilizzo dei layout layout Android' e 'Concetti di utilizzo dei controlli Android'.

Spero che l'articolo descritto sia utile per la progettazione di applicazioni Android di tutti.

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta ai rispettivi proprietari, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare