মেমরি ফাঁস হওয়ার ক্ষেত্রে এই ত্রুটিটি ঘটেছে। উদাহরণস্বরূপ, যদি আপনার কাছে কোনও অ্যান্ড্রয়েড উপাদান (ক্রিয়াকলাপ / পরিষেবা / ইত্যাদি) সম্পর্কিত কোনও স্থির প্রসঙ্গ থাকে এবং এটি সিস্টেম দ্বারা মারা যায়।
উদাহরণ: নোটিফিকেশন এরিয়ায় সংগীত প্লেয়ার নিয়ন্ত্রণ করে। অগ্রভাগের পরিষেবাটি ব্যবহার করুন এবং নীচের মতো মুলতুবিকরণের মাধ্যমে বিজ্ঞপ্তি চ্যানেলে ক্রিয়া সেট করুন।
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setAction(AppConstants.ACTION.MAIN_ACTION);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
Intent previousIntent = new Intent(this, ForegroundService.class);
previousIntent.setAction(AppConstants.ACTION.PREV_ACTION);
PendingIntent ppreviousIntent = PendingIntent.getService(this, 0,
previousIntent, 0);
Intent playIntent = new Intent(this, ForegroundService.class);
playIntent.setAction(AppConstants.ACTION.PLAY_ACTION);
PendingIntent pplayIntent = PendingIntent.getService(this, 0,
playIntent, 0);
Intent nextIntent = new Intent(this, ForegroundService.class);
nextIntent.setAction(AppConstants.ACTION.NEXT_ACTION);
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.drawable.ic_launcher);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
notificationChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000});
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
}
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
Notification notification = notificationBuilder
.setOngoing(true)
.setAutoCancel(true)
.setWhen(System.currentTimeMillis())
.setContentTitle("Foreground Service")
.setContentText("Foreground Service Running")
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(Bitmap.createScaledBitmap(icon, 128, 128, false))
.setContentIntent(pendingIntent)
.setPriority(NotificationManager.IMPORTANCE_MAX)
.setCategory(Notification.CATEGORY_SERVICE)
.setTicker("Hearty365")
.build();
startForeground(AppConstants.NOTIFICATION_ID.FOREGROUND_SERVICE,
notification);
এবং যদি এই বিজ্ঞপ্তি চ্যানেলটি আকস্মিকভাবে ভেঙে যায় (সিস্টেমের দ্বারা হতে পারে, আমরা যখন ব্যাকগ্রাউন্ড অ্যাপ্লিকেশনগুলি পরিষ্কার করি তখন জিমি ডিভাইসগুলির মতো), তবে মেমরি ফাঁস হওয়ার কারণে সিস্টেম দ্বারা ত্রুটি ছুঁড়ে দেওয়া হয়।