Ekstensi Chrome - API Alarm Chrome menjadwal ulang semua alarm setelah setiap alarm baru dibuat

Saya telah mengembangkan ekstensi chrome bernama Aplikasi Pengingat di mana saya telah menggunakan API Alarm yang memungkinkan pengguna menyetel alarm, Aplikasi memiliki dua bagian Untuk membuat pengingat tunggal (misalnya pada 10:20) dan untuk membuat banyak pengingat (misalnya Setiap 50 Menit), ketika dalam Aplikasi yang dikemas (Setelah Mengunggah ke toko web) saya menyetel dua pengingat

1.10:20 AM (at 10:18:10 AM)

2.Setiap 10 Menit (pukul 10:19:10)

Di lokal (Aplikasi Tanpa Paket) Kedua alarm dipicu Tepat Pukul 10:20, tetapi Skenario yang sama Dalam Aplikasi Terpaket Alarm Pertama berbunyi pada pukul 10:20 tetapi yang kedua berbunyi pada pukul 10:21 (bukannya pukul 10:20).

Bagaimana saya bisa menyinkronkan keduanya?

Apakah karena hal ini Dinyatakan dalam Dokumen API Alarm?

Untuk mengurangi beban pada mesin pengguna, Chrome membatasi alarm paling banyak sekali setiap 1 menit, namun dapat menunda alarm lebih lama lagi. [...]

Untuk membantu Anda men-debug aplikasi atau ekstensi, setelah Anda memuatnya tanpa membongkarnya, tidak ada batasan seberapa sering alarm dapat menyala.


person Sona    schedule 29.10.2015    source sumber
comment
kutipan itu tampaknya cukup jelas dan menjelaskan masalah Anda   -  person Zig Mandel    schedule 29.10.2015
comment
@Zig Mandel bukankah ada cara lain agar saya bisa menyinkronkannya?   -  person Sona    schedule 29.10.2015
comment
setTimeout dan seterusnya dari halaman latar belakang   -  person Zig Mandel    schedule 29.10.2015
comment
bisakah Anda memberi saya kode persisnya? di mana dan kapan saya harus mengaturnya? atau beri saya referensi jika ada yang sudah menggunakannya.   -  person Sona    schedule 29.10.2015
comment
itu terlalu luas. lihat ikhtisar arsitektur untuk memahami halaman latar belakang   -  person Zig Mandel    schedule 29.10.2015
comment
Jika Anda ingin dua alarm berbunyi secara bersamaan, sepertinya Anda harus memiliki satu alarm yang memicu dua fungsi.   -  person Teepeemm    schedule 29.10.2015
comment
tetapi masalah hanya terjadi di aplikasi yang dikemas, jika saya menyetel pengingat kedua antara (10:19:00 hingga 10:20:00) dari pengingat pertama (Waktu Jadwal: 10:20:00) maka pengingat pertama berbunyi tepat terlambat satu menit setelah kami menambahkan pengingat kedua, jadi jika kami menambahkan pengingat kedua pada pukul 10:19:20, maka pengingat pertama akan dimulai pada pukul 10:20:20, bukan pukul 10:20:00. pendengar alarm menyalakannya pada 10:20:20 jadi bagaimana saya bisa membuat api alarm agar tidak menjadwal ulang alarm jika saya menambahkan alarm lain? masalah saya ada yang seperti ini codereview.chromium.org/145353013   -  person Sona    schedule 30.10.2015


Jawaban (2)


Sebagaimana dinyatakan dalam Dokumen API Alarm dan seperti yang Anda kutip:

Chrome membatasi alarm paling banyak satu kali setiap 1 menit, namun dapat menunda alarm lebih lama lagi.

Cara lain yang mungkin berhasil untuk Anda adalah dengan 'menambahkan' teks pengingat baru dengan nama alarm yang memiliki waktu terjadwal yang sama.

Hal ini dapat dilakukan dengan memeriksa apakah alarm baru akan cocok dengan Waktu yang dijadwalkan dari semua alarm yang sudah disetel. Jika demikian, Anda dapat menghapus alarm tersebut dan membuat yang baru dengan teks yang ditambahkan. Anda kemudian dapat menangani teks yang ditambahkan ketika onAlarm() diaktifkan.

[CATATAN: Saya belum mencobanya]

person Marcob14    schedule 29.10.2015

Saya menyelesaikannya menggunakan fungsi settimeout() atau setinterval() seperti yang disarankan oleh @Zig ​​Mandel, saya sekarang tidak lagi menggunakan API alarm chrome, saya hanya menyimpan data menggunakan API Penyimpanan dan melakukan polling setiap 1 detik menggunakan fungsi setinterval di halaman latar belakang dari penyimpanan.

person Sona    schedule 05.11.2015