[Android] Hàm hẹn giờ thực thi method

Các bạn có bao giờ thắc mắc có những ứng dụng bạn đang sử dụng một thời gian nhất định thì ứng dụng tự động xuất hiện quảng cáo. Thực tế code rất đơn giản, có 2 cách code hẹn giờ thực thi method, tôi sẽ giới thiệu trong bài này:
Cách 1: Đoạn code hẹn giờ ở dưới chỉ thực thi 1 lần mà thôi
Trong source java bạn chèn dòng code hẹn giờ này vào chỗ bạn gọi hàm thực thi mà bạn cần hẹn giờ:
Đoạn code 1
new Timer().schedule(new TimerTask() {
    @Override    public void run() {
        // this code will be executed after 10 minutes        
        handler.sendEmptyMessage(0);
    }
}, 1000 * 60 * 10);
Ý nghĩa của của Đoạn code 1 là 10 phút tới sẽ gọi thực thi method của bạn
Ta để ý tham số thứ nhất TimerTask() của hàm Timer().schedule() là kiểu Runable nên bắt buộc khi override hàm run() của TimerTask() này hãy khai báo đối tượng của android.os.Handler và chứa các đối tượng UI vào đó và chèn đối tượng của android.os.Handler  để override hàm run() của TimerTask().
VD: handler trong handler.sendEmptyMessage(0); ở trong Đoạn code 1  được khai báo như sau:
Đoạn code 2:
Handler handler = new Handler() {
    @Override    public void handleMessage(Message msg) {
        // Chèn method có chứa các đối tượng UI vào đây
    }
};
Tham số thứ hai 1000 * 60 * 10 là giá trị thời gian có đơn vị là mili giây, trong Đoạn code 1 tôi để thời gian là 10 phút.
Cách 2: Đoạn code hẹn giờ ở dưới sẽ thực thi liên tục theo thời gian đã định, tức là bạn định nghĩa cứ 10 phút thực thi method thì cứ sau 10 phút nó thực thi method, liên tục như vậy khi thoát chương trình.
Bạn sử dụng đoạn code
final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleWithFixedDelay(new Runnable()
{
    @Override    public void run()
    {
        handler.sendEmptyMessage(0);
    }
}, 0, 2, TimeUnit.SECONDS);
Ý nghĩa đoạn code này là thực thi handler.sendEmptyMessage(0) lần đầu tiên lúc 0 đơn vi thời gian, lần thứ 2 trở đi cứ 2 đơn vị thời gian thực thi hàm handler.sendEmptyMessage(0) , TimeUnit.SECONDS  định nghĩa đơn vị thời gian là GIÂY.
Như vậy tôi đã giới thiệu hàm hẹn giờ thực thi method. Hy vọng bài viết giúp ích cho bạn.

Không có nhận xét nào:

Đăng nhận xét

Bài viết nổi bật

[Android] Hàm hẹn giờ thực thi method

Các bạn có bao giờ thắc mắc có những ứng dụng bạn đang sử dụng một thời gian nhất định thì ứng dụng tự động xuất hiện quảng cáo. Thực tế cod...