Saya sedang mengembangkan aplikasi Android 2.3.3 dan saya perlu menjalankan metode setiap X detik .
Di iOS, saya memiliki NSTimer , tetapi di Android saya tidak tahu harus menggunakan apa.
Seseorang telah merekomendasikan saya Handler ; yang lain merekomendasikan saya AlarmManager tetapi saya tidak tahu metode mana yang lebih cocok dengan NSTimer .
Ini adalah kode yang ingin saya terapkan di Android:
timer2 = [
NSTimer scheduledTimerWithTimeInterval:(1.0f/20.0f)
target:self
selector:@selector(loopTask)
userInfo:nil
repeats:YES
];
timer1 = [
NSTimer scheduledTimerWithTimeInterval:(1.0f/4.0f)
target:self
selector:@selector(isFree)
userInfo:nil
repeats:YES
];
Saya butuh sesuatu yang berfungsi seperti NSTimer .
Apa yang Anda rekomendasikan untuk saya?
Jawaban:
Ini sangat tergantung pada berapa lama Anda perlu menjalankan fungsi.
Jika => 10 menit → Saya akan menggunakan Alarm Manager.
Dan kemudian Anda menerima siaran ini melalui penerima siaran. Perhatikan bahwa eter ini perlu didaftarkan di manifes aplikasi Anda atau melalui
context.registerReceiver(receiver,filter);
metode. Untuk informasi lebih lanjut tentang Penerima Siaran, silakan merujuk ke Dokumen resmi. Penerima Siaran .Jika = <10minutes → Saya akan pergi dengan Handler.
sumber
h.removeCallbacks(this);
, jika tidak , Anda perlu mempertahankan referensi ke runnable agar dapat menghapusnya. Jika yang kedua diinginkan, metode yang diposting di sini mungkin bukan rute terbaik Anda.Gunakan Timer untuk setiap detik ...
sumber
Anda dapat mencoba kode ini untuk memanggil penangan setiap 15 detik melalui onResume () dan menghentikannya saat aktivitas tidak terlihat, melalui onPause ().
sumber
Jika Anda sudah familiar dengan RxJava, Anda bisa menggunakan Observable.interval (), yang cukup rapi.
Sisi negatifnya adalah Anda harus merancang polling data Anda dengan cara yang berbeda. Namun, ada banyak manfaat dari cara Pemrograman Reaktif:
Dengan RxAndroid, Anda dapat menangani utas hanya dalam 2 baris kode.
Silakan periksa RxJava. Ini memiliki kurva belajar yang tinggi tetapi itu akan membuat penanganan panggilan asinkron di Android jadi lebih mudah dan lebih bersih.
sumber
Dengan Kotlin, sekarang kita dapat membuat fungsi umum untuk ini!
Dan untuk menggunakan, lakukan saja:
sumber
sumber
Di sini saya menggunakan utas di onCreate () sebuah Aktivitas berulang kali, pengatur waktu tidak mengizinkan semuanya dalam beberapa kasus Thread adalah solusinya
Jika diperlukan, hal itu dapat dihentikan
sumber
Di sini mungkin jawaban yang membantu untuk masalah Anda menggunakan Rx Java & Rx Android .
sumber