• Pending Intent. Ba’zan foydalanuvchi notification-ni bosgandan so’ng, masalan, activity
  • PendingIntent
  • MainActivity
  • Notification-ni qanday bekor qilishga misol




    Download 239,8 Kb.
    bet5/7
    Sana19.05.2024
    Hajmi239,8 Kb.
    #243587
    1   2   3   4   5   6   7
    Bog'liq
    ANDROID NOTIFICATIONS

    Notification-ni qanday bekor qilishga misol :


    private fun cancelNotification() {
    notificationManager.cancel(NOTIFICATION_ID)
    }


    Notification-ni yangilash ularni ko’rsatish bilan bir xil. Builder obyekti bilan boshqa notification yaratishingiz kerak, so’ngra NotificationManager-dan uni bir xil notification ID-dan foydalanib ko’rsatishini so’rang. Shunday qilib, NotificationManager notification-ni yangisi bilan yangilashni biladi.


    Pending Intent.
    Ba’zan foydalanuvchi notification-ni bosgandan so’ng, masalan, activity-ni ko’rsatish yoki Service-ni ishga tushirish yoki shunchaki broadcast receiver-ga intent yuborish kabi amal bajarilishini xohlaysiz.
    Bu harakatlarning barchasi Intent-ni talab qiladi. Va bu muammo — biz bu yerda intent-lardan foydalana olmaymiz.
    Agar siz ilovangizdagi Activity-ni ishga tushirmoqchi bo’lsangiz, bu umuman muammo emas. Ilovangizda, intent bilan startActivity() ni chaqirganingizda, ilovangiz buni amalga oshirish uchun ruxsat (permission)-ga ega.
    Launcher (system component) kerakli permission-larsiz Activity-ni ishga tushirmoqchi bo’lganda muammo kelib chiqadi. Shu sababli, bizga boshqa turdagi intent kerak bo’ladi va bu Pending intent.
    PendingIntent — bu siz boshqa ilovalarga (masalan, NotificationManager) beradigan token turi bo’lib, u boshqa ilovaga biror narsani bajarish uchun ilovangiz ruxsatlaridan foydalanish imkonini beradi.
    Shunday qilib, agar siz boshqa dasturga intent jo’natsangiz, u o’z permission-lari bilan intent-ni amalga oshiradi. Agar siz begona ilovasiga PendingIntent bersangiz, u ilova, sizning ilovangiz permission-laridan foydalanib intent-ni amalga oshiradi.
    Siz ishga tushirmoqchi bo’lgan komponentga qarab getActivity() va getService() kabi statik metodlardan foydalangan holda PendingIntent yaratishingiz mumkin. Va bu metodlar doirasida siz oddiy vaziyatlarda bo’lgani kabi intent-ni belgilashingiz kerak. Shuningdek, siz flag va parametrlarni qo’shishingiz mumkin — shu tarzda PendingIntent sizning intent uchun begona ilova tomonidan foydalanish uchun o’ram (wrapper) vazifasini bajaradi.
    Notification-ni bosgandan so’ng MainActivity-ni ishga tushirish uchun PendingIntent yaratamiz. Buni amalga oshirish uchun kod :


    val intent = Intent(this, MainActivity::class.java).apply {
    flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
    }

    val pendingIntent: PendingIntent = PendingIntent.getActivity(this, 0, intent, 0)

    val builder = NotificationCompat.Builder(this, PRIMARY_CHANNEL_ID).apply {
    setSmallIcon(R.drawable.ic_android)
    setContentIntent(pendingIntent)
    setContentTitle("Notification Article")
    setContentText("Learn How To Manage And Display Notifications in Android")
    setAutoCancel(true)
    setPriority(NotificationCompat.PRIORITY_DEFAULT)
    }

    with(NotificationManagerCompat.from(this)) {


    notify(NOTIFICATION_ID, builder.build())
    }



    Download 239,8 Kb.
    1   2   3   4   5   6   7




    Download 239,8 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Notification-ni qanday bekor qilishga misol

    Download 239,8 Kb.