CĂN BẢN
INTENTS
GIAO DIỆN
CÁC KHÁI NIỆM
VÍ DỤ
TÀI LIỆU
HỌC LẬP TRÌNH ANDROID
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

AlarmManager trong Android

AlarmManager Android là một thành phần quan trọng trong Android được sử dụng để đặt lịch trình cho các hoạt động hoặc sự kiện trong tương lai. AlarmManager cung cấp khả năng để kích hoạt một ứng dụng để chạy theo lịch trình hoặc tương tác với ứng dụng khác.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Giới thiệu AlarmManager trong Android

AlarmManager trong Android cho phép lập lịch các tác vụ để chạy vào một thời điểm nhất định, ngay cả khi ứng dụng không hoạt động. Với AlarmManager, người dùng có thể tạo ra các lịch trình cho việc đăng nhập, cập nhật dữ liệu, thông báo và nhiều tác vụ khác. Với việc kết hợp AlarmManager với các thành phần khác trong Android như BroadcastReceiver hoặc Service, người dùng có thể đăng ký các tác vụ và nhận thông báo khi tác vụ đã hoàn thành.

alarmmanager jpg

2. Các thuộc tính của AlarmManager trong Android

Các thuộc tính của AlarmManager trong Android bao gồm:

Bài viết này được đăng tại [free tuts .net]

  • ELAPSED_REALTIME hoặc RTC : Xác định thời gian sử dụng hệ thống (elapsed) hoặc thời gian thực (real-time) để tính toán thời gian bắt đầu của tác vụ.
  • INTERVAL_FLEXIBLE hoặc INTERVAL_EXACT : Xác định kiểu lặp lại của tác vụ, có thể là lặp lại chính xác (exact) hoặc linh hoạt (flexible) với khoảng thời gian cho phép bị trễ (tolerance interval).
  • set() hoặc setExact() : Xác định thời gian bắt đầu của tác vụ dựa trên thời gian hệ thống (elapsed time) hoặc thời gian thực (real-time) và sử dụng INTERVAL_FLEXIBLE hoặc INTERVAL_EXACT để lặp lại tác vụ.
  • cancel() : Hủy bỏ tác vụ đã được đăng ký để chạy.

Để hiểu rõ hơn về các thuộc tính của AlarmManager trong Android thì chúng ta sẽ tiếp tục tìm hiểu cách sử dụng của nó.

3. Cách sử dụng Menu trong Android

Để sử dụng AlarmManager trong Android, bạn cần thực hiện các bước sau:

Bước 1: Tạo đối tượng AlarmManager:

AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

Bước 2: Tạo Intent và PendingIntent:

Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

Bước 3: Thiết lập lịch trình cho tác vụ:

Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

Ví dụ: Dưới đây là một ví dụ về cách sử dụng AlarmManager trong Android để lập lịch thông báo cho người dùng

public class AlarmActivity extends AppCompatActivity {

    private static final int NOTIFICATION_ID = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button startButton = findViewById(R.id.start_button);
        startButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setAlarm();
                Toast.makeText(getApplicationContext(), "Alarm set!", Toast.LENGTH_SHORT).show();
            }
        });

        Button cancelButton = findViewById(R.id.cancel_button);
        cancelButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                cancelAlarm();
                Toast.makeText(getApplicationContext(), "Alarm cancelled!", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void setAlarm() {
        Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), NOTIFICATION_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

        // set the alarm to trigger after 10 seconds
        long timeInMillis = System.currentTimeMillis() + 10000;
        alarmManager.set(AlarmManager.RTC_WAKEUP, timeInMillis, pendingIntent);
    }

    private void cancelAlarm() {
        Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), NOTIFICATION_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.cancel(pendingIntent);
    }
}

Trong ví dụ này, chúng ta sử dụng hai nút bấm để thiết lập hoặc hủy bỏ lịch thông báo. Khi nút "Start" được nhấn, phương thức setAlarm() sẽ được gọi. Đầu tiên, chúng ta tạo một Intent để khởi động AlarmReceiver khi hệ thống báo động được kích hoạt. Chúng ta sau đó tạo một PendingIntent để đặt thông báo, với cùng một mã thông báo được sử dụng cho việc thiết lập và hủy bỏ thông báo. Tiếp theo, chúng ta lấy một thể hiện của AlarmManager thông qua hàm getSystemService() và sử dụng nó để đặt lịch thông báo sử dụng phương thức set(). Trong ví dụ này, chúng ta đặt thông báo để kích hoạt sau 10 giây. Khi nút "Cancel" được nhấn, phương thức cancelAlarm() được gọi, và chúng ta sử dụng cùng một PendingIntent và AlarmManager để hủy bỏ lịch thông báo.

4. Tổng kết

AlarmManager là một công cụ tối ưu để lên lịch các tác vụ định kỳ trong ứng dụng Android của bạn. Cho dù bạn cần đồng bộ hóa dữ liệu, kiểm tra các bản cập nhật hay kích hoạt thông báo, Trình quản lý báo thức có thể giúp bạn hoàn thành mục tiêu của mình. Qua bài viết này, freetuts hy vọng bạn đã hiểu được cách sử dụng và áp dụng AlarmManager trong Android vào ứng dụng của bạn một cách tối ưu nhất.

Cùng chuyên mục:

Tìm hiểu về vòng đời của Activity trong Android

Tìm hiểu về vòng đời của Activity trong Android

Menu trong Android

Menu trong Android

Fragments trong Android

Fragments trong Android

SearchView trong Android

SearchView trong Android

TabLayout trong Android

TabLayout trong Android

ViewStub trong Android

ViewStub trong Android

Image Slider trong Android

Image Slider trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

ScrollView trong Android

ScrollView trong Android

ProgressBar trong Android

ProgressBar trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Cách dùng TimePicker trong Android

Cách dùng TimePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng SeekBar trong Android

Cách dùng SeekBar trong Android

Cách dùng WebView trong Android

Cách dùng WebView trong Android

Cách dùng RatingBar trong Android

Cách dùng RatingBar trong Android

Cách dùng ListView trong Android

Cách dùng ListView trong Android

AutoCompleteTextView trong Android

AutoCompleteTextView trong Android

Spinner trong Android

Spinner trong Android

AlertDialog trong Android

AlertDialog trong Android

Top