一、通知的基本概念
通知是Android系統中最常用的功能之一,能夠在應用程序運行時,利用Android系統提供的通知管理器組件推送一些重要信息到狀態欄上,以方便用戶在不打斷其它正在進行的操作的情況下及時獲取到這些信息。Android通知的作用不僅在於提醒,還可以使用通知欄提供的各種點擊方式讓用戶快速進入應用程序中的某個特定界面。
二、通知的使用步驟
Android通知的使用步驟有三步:
1、創建一個通知對象,通常是開發者需要提供一些通知基本信息,例如通知的標題、內容、圖標等等。
2、調用 NotificationManager 的 notify() 方法將通知對象顯示到狀態欄上。
3、如果需要定製通知的行為,則可以為通知綁定一個 PendingIntent 對象, PendingIntent 對象可以在用戶點擊通知後跳轉到應用程序中的某個指定 Activity 或 Service 中。
三、創建通知對象的詳細步驟
以下是創建通知對象的詳細步驟:
1、創建 NotificationCompat.Builder 對象
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId);
其中 this 是當前 Activity 對象,channelId 是應用程序內部使用的通知渠道 ID,用於區分通知的種類。
2、設置通知的基本信息
builder.setContentTitle("通知標題") .setContentText("通知內容") .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher_round)) .setAutoCancel(true) .setContentIntent(pendingIntent);
其中 setContentTitle() 設置通知的標題,setContentText() 設置通知的內容,setSmallIcon() 設置通知欄中通知的小圖標, setLargeIcon() 設置通知欄中通知的大圖標, setAutoCancel() 在用戶點擊通知後自動消失, setContentIntent() 為通知設置 PendingIntent。
3、創建 Notification 對象
Notification notification = builder.build();
4、調用 NotificationManager 的 notify() 方法顯示通知
notificationManager.notify(notificationId, notification);
其中 notificationId 是通知的編號,用於區分不同的通知。
四、通知的進階用法
以上是基本應用的通知實現,通常作為一款優秀的應用,在通知的實現上,可以進行更多的擴展。
1、設置通知的優先級
builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);
setPriority() 方法用於設置通知的優先級,可以取以下的值:
- PRIORITY_HIGH:高優先級,會在狀態欄中顯示,並發出提示音。
- PRIORITY_DEFAULT:默認優先級,會在狀態欄中顯示,但不會發出提示音。
- PRIORITY_LOW:低優先級,不會在狀態欄中顯示,但會被摺疊在通知抽屜中。
- PRIORITY_MIN:最低優先級,不會在狀態欄中顯示,只會在通知抽屜中顯示。
- PRIORITY_MAX:最高優先級,顯示在狀態欄中並發出提示音。
2、設置通知的聲音和震動
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); builder.setSound(alarmSound); builder.setVibrate(new long[] {0, 1000, 1000, 1000});
setSound() 方法用於設置通知的提示音, setVibrate() 方法用於設置通知的震動模式。
3、設置通知的燈光
builder.setLights(Color.GREEN, 2000, 1000);
setLights() 方法用於設置通知的 LED 燈的顏色、亮起時長和滅掉時長。
4、設置通知的樣式
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); inboxStyle.setBigContentTitle("五條通知"); for (String content : messageList) { inboxStyle.addLine(content); } builder.setStyle(inboxStyle);
可以使用 NotificationCompat.Builder 的 setStyle() 方法為通知定義不同的樣式。Android 系統提供了以下樣式:
- BigPictureStyle:展示一張大圖。
- InboxStyle:可以展示多行文本。
- MessagingStyle:展示來自不同人的多個消息。
- MediaStyle:展示通知與音樂播放器的集成。
五、補充說明
如需使用 Android 通知,需要在 AndroidManifest.xml 文件中聲明通知權限:
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254511.html