Как удалить закэшированное сообщение

«Как удалить закэшированное сообщение» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android можно удалить кэшированные сообщения несколькими способами:

  1. Через NotificationManager:
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.cancel(notificationId) // для конкретного уведомления
notificationManager.cancelAll() // все уведомления приложения
  1. Очистка кэша приложения:
try {
    val packageManager = context.packageManager
    val packageName = context.packageName
    packageManager.getApplicationInfo(packageName, 0).run {
        val cacheDir = File(sourceDir)
        if (cacheDir.exists()) {
            cacheDir.deleteRecursively()
        }
    }
} catch (e: Exception) {
    e.printStackTrace()
}
  1. Через CacheManager (если сообщения кэшированы в памяти):
CacheManager.getInstance().clear()

Важно: для работы с файлами нужно запросить разрешение WRITE_EXTERNAL_STORAGE (для API < 30).