Android Notification 實作(基本) - Medium

文章推薦指數: 80 %
投票人數:10人

想要學得很完整可以直接看官方的Codelabs教學https://developer.android.com/codelabs/advanced-android-kotlin-training-notifications#0 PS. GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWriteAndroidNotification實作(基本)簡單記錄一下AndroidNotification的實作寫這篇文的目的是為了最快最簡單的建立通知所以都是最簡單的東西,沒有深入探討想要學得很完整可以直接看官方的Codelabs教學https://developer.android.com/codelabs/advanced-android-kotlin-training-notifications#0PS.這篇寫得很細因為只是要最簡單的創件一個通知所以沒用上這篇不過很詳細也是很棒的參考首先剖析通知的構造(來自developers官網)通知的設計由系統模板決定,您的應用只需要定義模板中各個部分的內容即可。

通知的部分詳情僅在展開後的視圖中顯示。

小圖標:必須提供,通過setSmallIcon()應用名稱:由系統提供。

時間戳:由系統提供,但您可以使用setWhen()setShowWhen(false)大圖標:可選內容(通常僅用於聯繫人照片,請勿將其用於應用圖標),通過setLargeIcon()標題:可選內容,通過setContentTitle()文本:可選內容,通過setContentText()還有另一件重要的事:通知渠道從Android8.0(API級別26)開始,必須為所有通知分配渠道,否則通知將不會顯示。

更低的版本則因為每個APP只有一個通知渠道所以不用因此想要最簡單的發送通知要做的事情只有兩個設定小圖標建立通知渠道首先建立通知渠道valchannelId=getString(R.string.channel_id)//確認是否為Android8.0以上版本//8.0以上版本才需要建立通知渠道if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){//CreatetheNotificationChannel//設定通知渠道名稱、描述和重要性valname=getString(R.string.channel_name)valdescriptionText=getString(R.string.channel_description)valimportance=NotificationManager.IMPORTANCE_DEFAULTvalmChannel=NotificationChannel(channelId,name,importance)mChannel.description=descriptionText//Registerthechannelwiththesystem;youcan'tchangetheimportance//orothernotificationbehaviorsafterthisvalnotificationManager=getSystemService(NOTIFICATION_SERVICE)asNotificationManagernotificationManager.createNotificationChannel(mChannel)}如果出現紅字沒關係,在res\values\strings.xml新增就好了游標放在上面也會有提示,點下去就可以新增了名字隨便取沒關係再來是設定通知內容標題和內容可以不設定而通知優先級則是要確保Android8.0以下的設定不確定Android8.0以下可不可以不設,不然在建立通知渠道時已經設定過了valbuilder=NotificationCompat.Builder(this,channelId).setSmallIcon(R.drawable.ic_launcher_foreground).setContentTitle("Title").setContentText("ContentText").setPriority(NotificationCompat.PRIORITY_DEFAULT)最後則是送出通知調用NotificationManagerCompat.notify()將通知的唯一ID和NotificationCompat.Builder.build()傳遞給它我是放在按鈕的監聽器哩,點擊後送出valbutton=findViewById



請為這篇文章評分?