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

شرح تفصيلي لضبط إعدادات闹قون في Android

مثال هذا النص يشرح كيفية إعداد闹ق اندرويد. يشارك معكم لتكونوا مرجعًا، وفقًا للتالي:

ساعة التنبيه هي أكثر الأشياء شيوعًا في الحياة، ويمكن تحقيقها في Android من خلال AlarmManager، وهو فئة تستخدم لتحديد تنفيذ مهمة معينة في وقت معين. سيقوم AlarmManager بتنفيذ هذه الأحداث من خلال طريقة onReceive، حتى لو كان النظام في حالة الاستيقاظ، فإنه لن يؤثر على التشغيل. يمكنك الحصول على هذه الخدمة من خلال طريقة Context.getSystemService. تحتوي فئة AlarmManager على العديد من الطرق، مثلما يلي:

طريقة

شرح

Cancel

إلغاء خدمة AlarmManager

Set

إعداد خدمة AlarmManager

setInexactRepeating

إعداد فترة التكرار غير الدقيقة

SetRepeating

إعداد فترة التكرار

setTimeZone

إعداد المنطقة الزمنية


لتحقيق ساعة تنبيه، يجب أولاً إنشاء فئة تنحدر من BroadcastReceiver وتنفيذ طريقة onReceive لتلقي هذه خدمة Alarm، ثم الاتصال بـ Intent وPendingIntent للتحكم في مكون Alarm. يمكنك إعداد وقت الإشعار باستخدام TimerPickerDialog، وعند وصول الوقت المحدد، سيتم تلقي إشعار Alarm من خلال طريقة onReceiver.

أولاً، قم بإنشاء فئة AlarmReceiver لتلقي خدمة Alarm، واستخدم فئة Toast لتعليم المستخدم

public class AlarmReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
    Toast.makeText(arg0, "وقت الإشعار الذي قمت بضبطه قد حان", Toast.LENGTH_LONG).show();
  }
}

بسبب استخدام خدمة BroadcastReceiver، يجب إدراجها في AndroidManifest.xml:

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

ثم يجب إعداد وقت الإشعار وإلغاء الإشعار لمراقبة الوقت:

بكيتاج cn.edu.pku;
إدراج java.util.Calendar;
إدراج android.app.Activity;
إدراج 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-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("تم إلغاء الصفير!");
      }
    });
  }
  private String format(int time){
    String str = "" + time;
    if(str.length() == 1){
      str = "0" + str;
    }
    return str;
  }
}

النتيجة تبدو كالتالي:

إعداد الصفير

الوقت الحالي قد وصل إلى وقت إعداد الصفير:

إلغاء الصفير:

للمزيد من المعلومات المتعلقة بـ Android، يمكن للقراء المهتمين التحقق من موضوعات هذا الموقع: 'مقدمة إلى تصميم برامج Android' و 'تعليم برمجة Android' و 'تحليل تقنيات الت调试 في Android' و 'تحليل تقنيات التشغيل المتعددة في Android' و 'تحليل تقنيات التشغيل المتعددة في Android (الصوت، الفيديو، التسجيل، إلخ)' و 'تحليل استخدام العناصر الأساسية في Android' و 'تحليل تقنيات عرض الرؤية في Android' و 'تحليل تقنيات تصميم التخطيط في Android' و 'تحليل استخدام العناصر في Android'.

نتمنى أن يساعدك هذا المقال في تصميم برامج Android.

بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويعود حقوق الملكية للمالك الأصلي، تم جمع المحتوى من قبل المستخدمين عبر الإنترنت بطرقهم الخاصة، ويحمل هذا الموقع حقوق الملكية، لم يتم تعديل المحتوى بشكل إنساني، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا اكتشفت محتوى يشتبه في انتهاك حقوق النسخ، فأنت مرحب بك في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) للإبلاغ، وتقديم الدليل، إذا تم التحقق من ذلك، فإن هذا الموقع سيزيل محتوى يشتبه في انتهاك حقوق النسخ فورًا.

الذكاء الاصطناعي يحبك