Postingan lainnya
Membuat aplikasi tetap berjalan walaupun aplikasi di hapus dari ( recent app )
Selamat Pagi / Siang / Malam mohon bertanya , saya membuat aplikasi monitoring , yang datanya saya ambil dari realtime firebase , jika ada data update maka akan muncul notifikasi , tapi ketika aplikasi saya tutup dan saya hapus dari " recent app " notifikasinya tidak tampil
Bagaiman cara agar notifikasinya tetep update walaupun app ter close dan tidak ada dalam recent app ?
Terima kasih sebelumnya
3 Jawaban:
<div>Halo <a href="https://sekolahkoding.com/user/MakrusAli">@MakrusAli</a><br>Mohon Izin menjawab,<br><br><strong>Penjelasan</strong><br>Mendukung pemberitahuan push berbasis api untuk semua perangkat seperti labirin. Ada 3 skenario untuk notifikasi push:<br><br>1. Latar depan (aktifkan metode onMessageReceived FirebaseMessagingService)<br>2. Latar belakang (tidak dapat mengaktifkan FirebaseMessagingService, tetapi layanan firebase mendorong pesan mereka ke Notification Tray perangkat)<br>3. App kill (tidak dapat mengaktifkan FirebaseMessagingService firebase service mendorong pesan mereka ke Notification Tray perangkat)<br><br>CATATAN: Beberapa perangkat Cina seperti Xiaomi, Asus, Huawei dll. Memaksa menghentikan aplikasi Anda saat Anda menggesek keluar dari tumpukan latar belakang Anda, sehingga layanannya mati. Oleh karena itu, layanan firebase tidak berjalan dan tidak dapat memasukkan notifikasi ke baki Notifikasi.<br><br>Di Xiaomi - keamanan -> izin -> mulai otomatis lalu centang tandai aplikasi Anda. Aktifkan ini berarti layanan aplikasi apa pun selalu berjalan di latar belakang. Kemudian Anda mendapatkan semua jenis notifikasi dari aplikasi Anda setiap saat.<br><br>Jika Anda ingin mempelajari lebih lanjut tentang itu, Periksa itu dan jika Anda ingin membuka halaman keamanan perangkat tertentu dari aplikasi Anda, periksa ini.<br><br>=============================================================<br><strong>CARA 1</strong><br>Anda bisa menggunakan layanan ini, yang perlu Anda lakukan hanyalah Memulai layanan ini onStop () dalam siklus hidup aktivitas Anda. Dengan kode ini: startService (new Intent (this, NotificationService.class)); maka Anda dapat membuat Kelas Java baru dan menempelkan kode ini di dalamnya:<br><br></div><pre>public class NotificationService extends Service {
Timer timer;
TimerTask timerTask;
String TAG = "Timers";
int Your_X_SECS = 5;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG, "onStartCommand");
super.onStartCommand(intent, flags, startId);
startTimer();
return START_STICKY;
}
@Override
public void onCreate() {
Log.e(TAG, "onCreate");
}
@Override
public void onDestroy() {
Log.e(TAG, "onDestroy");
stoptimertask();
super.onDestroy();
}
//we are going to use a handler to be able to run in our TimerTask
final Handler handler = new Handler();
public void startTimer() {
//set a new Timer
timer = new Timer();
//initialize the TimerTask's job
initializeTimerTask();
//schedule the timer, after the first 5000ms the TimerTask will run every 10000ms
timer.schedule(timerTask, 5000, Your_X_SECS * 1000); //
//timer.schedule(timerTask, 5000,1000); //
}
public void stoptimertask() {
//stop the timer, if it's not already null
if (timer != null) {
timer.cancel();
timer = null;
}
}
public void initializeTimerTask() {
timerTask = new TimerTask() {
public void run() {
//use a handler to run a toast that shows the current timestamp
handler.post(new Runnable() {
public void run() {
//TODO CALL NOTIFICATION FUNC
YOURNOTIFICATIONFUNCTION();
}
});
}
};
}
} <br></pre><div><br>Setelah ini, Anda hanya perlu menggabungkan layanan dengan manifest.xml:<br><br></div><pre><service android:name=".NotificationService" android:label="@string/app_name"> <intent-filter> <action android:name="your.app.domain.NotificationService" />
&lt;category android:name="android.intent.category.DEFAULT" /&gt;
&lt;/intent-filter&gt;
&lt;/service&gt;</pre><div><br>================================================================<br><strong>CARA 2</strong><br><br>Tambahkan BootBroadcastReceiver di file Manifest<br><br></div><pre>&lt;receiver
android:name=".OnBootBroadcastReceiver"&gt;
&lt;intent-filter&gt;
&lt;action android:name="android.intent.action.BOOT_COMPLETED"/&gt;
&lt;/intent-filter&gt;
</receiver> <br></pre><div><br>Buat file Java Mengikuti. panggil FirebaseMessagingReceiveService di dalamnya.<br><br></div><pre>import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;
public class OnBootBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent("com.demo.FirebaseMessagingReceiveService"); i.setClass(context, FirebaseMessagingReceiveService.class); context.startService(i); } }</pre><div><br>Sumber:<br>- https://stackoverflow.com/questions/51334341/notification-not-showing-when-the-app-is-closed<br>- https://stackoverflow.com/questions/39674850/send-a-notification-when-the-app-is-closed<br>- https://stackoverflow.com/questions/46656632/push-notification-not-displayed-when-app-is-closed-in-android<br><br>Semoga dapat membantu</div>
<div>Beberapa aplikasi seluler menyediakan latar belakang untuk Anda jalankan di latar belakang. Tapi itu cukup merusak sumber daya, Anda harus mempertimbangkannya saat menggunakannya. Beberapa tempat seperti <a href="https://bhcmod.com/">https://bhcmod.com/</a> memiliki beberapa aplikasi Android terbaik yang dapat Anda temukan dan gunakan. Semoga berhasil</div>
<div>Terima Kasih Banyak Mas <a href="https://sekolahkoding.com/user/keccikun">@keccikun</a> dan <a href="https://sekolahkoding.com/user/vincentemmanuel_google">@vincentemmanuel_google</a> </div>