Saya membuat aplikasi Android kecil yang menjalankan Layanan Latar Depan yang mendengarkan dan memberi tahu pengguna setiap kali ada pesan SMS baru tiba. Saat Layanan dimulai, daftarkan BroadcastReceiver
dengan tindakan android.provider.Telephony.SMS_RECEIVED
di IntentFilter, dan batalkan pendaftarannya saat berhenti. Aplikasi juga mendapatkan data pengguna beserta daftar nomor yang dipilih dari file JSON di penyimpanan internal sehingga Penerima dapat memfilter nomor mana yang akan diberitahukan kepada pengguna. MainActivity saya memiliki 3 tombol, Mulai dan Hentikan Layanan, bersama dengan tombol Pengaturan yang berpindah ke SettingActivity yang menampilkan beberapa info pengguna serta daftar nomor yang dipilih dan memungkinkan pengguna untuk mengubahnya. Pertanyaan saya adalah: Apa cara terbaik untuk membagikan data pengguna ke seluruh aplikasi sehingga semua Aktivitas serta Layanan dan Penerima dapat mengaksesnya? Saya telah memikirkan dan mencoba beberapa cara:
- Mendapatkan data pengguna dari file di MainActivity tempat aplikasi dimulai dan meneruskannya melalui Intent ke orang lain: ini berfungsi dengan baik ketika meneruskan data dari Aktivitas ke Aktivitas serta Layanan, tetapi tampaknya tidak berfungsi dengan
BroadcastReceiver
karena terdaftar untuk mendengarkan keSMS_RECEIVED
dan bukan Siaran lain meskipun saya membuat Intent baru dan menyiarkannya denganstartBroadcast
- Membuat objek
user
menjadi statis: Saya mencoba membuatUser
menjadi publik statis sehingga dapat dipanggil oleh kelas lain ketika MainActivity selesai mengambil data dari file, pada dasarnya meletakkanpublic static User user
di MainActivity dan memanggilnya denganMainActivity.user
di kelas lain, ini berfungsi bahkan denganBroadcastReceiver
tetapi saya tidak yakin apakah ini cara yang tepat untuk berbagi data ke seluruh aplikasi - Terakhir adalah mengambil data dari file ketika setiap Aktivitas atau Layanan dipanggil, artinya ketika setiap Aktivitas atau Layanan dipanggil, ia mendapatkan data lagi dari file JSON. Saya belum mencobanya tapi menurut saya ini mungkin berdampak pada kinerja serta konsistensi data di seluruh aplikasi.
Jadi apa cara yang tepat untuk menerapkan ini? Tolong beri saya beberapa saran. Terima kasih sebelumnya.