Tôi sử dụng Báo thức để tìm nạp dữ liệu từ máy chủ. Tôi muốn cung cấp cho người dùng tùy chọn để bắt đầu và dừng báo thức. Điều này có nghĩa là tôi phải kiểm tra xem liệu báo thức đã được đặt chưa. Tôi tìm thấy một số mã mà nói với tôi nếu báo động đã được thiết lập:Android AlarmQuản lý sự cố với cài đặt và đặt lại báo thức
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_NO_CREATE);
found = (P!=null);
nếu Alarm đã được thiết lập tôi hủy bỏ nó, nhưng nếu nó không được thiết lập sau đó tôi đặt nó (giống như một chuyển đổi)
Vấn đề là điều này chỉ hoạt động một lần. Lần đầu tiên mã trên để kiểm tra các báo động hiện tại sẽ trả lại null cho biết không có báo thức nhưng sau khi tôi hủy báo thức khi nó trả về một con trỏ cho một cái gì đó nhưng báo động không hoạt động.
đây là đoạn code để thiết lập báo động
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, P);
và đây là đoạn code để hủy bỏ một báo động:
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.cancel(P);
Tôi có để thiết lập lại một cái gì đó sau khi huỷ một báo thức để làm cho nó PendingIntent đi .
Tôi không thực sự chắc chắn lý do tại sao bạn đang thực hiện việc kiểm tra để xem nếu một báo động đã tồn tại. Bạn có thể giải thích lý do của bạn được không? –
Tôi muốn có một nút hoạt động như một nút bật/tắt. Cũng sử dụng nút làm chỉ báo nếu cài đặt báo thức của tôi bị mất do lỗi ứng dụng. Tôi sử dụng báo thức để cập nhật tiện ích khi người dùng nhấp vào tiện ích con để mở hoạt động mà người dùng có thể xem liệu báo thức có được đặt hay không. Những gì tôi sợ là sau khi tôi đặt báo thức, nó sẽ bị tắt và người dùng sẽ không biết rằng đó là tắt. – Kemal