[√]Android 通知栏

简介: [√]Android 通知栏

NotificationCompat / Notification

NotificationCompatNotification 是 Android 框架提供的两个不同的通知类。

NotificationCompat 是兼容库(Support Library)中提供的类,用于在各个 Android 版本上一致地创建和管理通知。它提供了向后兼容的特性,使你能够在较旧的 Android 版本上使用较新的通知功能。NotificationCompat 具有更广泛的兼容性,可以覆盖大多数 Android 设备。

Notification 是 Android 系统原生的通知类,从 Android 3.0(API 级别 11)开始引入。与 NotificationCompat 相比,Notification 类可能包含一些在较旧的 Android 版本上不可用的功能。但在运行较新 Android 版本的设备上,Notification 可以提供更多的自定义选项和特定功能。

为什么同时存在这两个类呢?一个主要原因是为了向后兼容性。通过使用 NotificationCompat,你可以在较旧的 Android 版本上使用通知功能,并确保应用在不同版本的设备上都能正常工作。另外,即使 NotificationCompat 提供了许多功能,有时你可能仍然需要使用 Notification 类来利用特定的平台功能或进行更高级的定制。

总之,NotificationCompatNotification 都可以用于创建和管理通知,选择使用哪个取决于你的需求和目标设备的兼容性要求。如果你只针对较新的 Android 版本开发应用,可以优先考虑使用 Notification 类。如果你需要更广泛的兼容性,则可以选择使用 NotificationCompat 类。

网上的教程真是稀巴烂,一个很简单的例子都搞得非常复杂。NotificationCompat我没有成功,直接用Notification

@RequiresApi(api = Build.VERSION_CODES.O)
public void notifyTest() {
    String channel = "12132";
    RemoteViews notifity = new RemoteViews(getPackageName(), R.layout.notify); // 布局文件
    Notification.Builder builder = new Notification.Builder(this, channel);
    builder.setOngoing(true)
            .setWhen(System.currentTimeMillis())
            .setSmallIcon(R.mipmap.ic_launcher)
            .setCustomContentView(notifity)
    ;
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    NotificationChannel notificationChannel = new NotificationChannel(channel, "Default Channel", NotificationManager.IMPORTANCE_DEFAULT);
    notificationManager.createNotificationChannel(notificationChannel);
    notificationManager.notify(1, builder.build());
}
  • notify.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/pause"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="pause">
        </Button>
        <Button
            android:id="@+id/report"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="report">
        </Button>
    </LinearLayout>
</LinearLayout>
  • 权限
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
目录
相关文章
|
6月前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
73 0
|
Android开发 UED
Android 实现通知栏和进度条效果(适用于Android8.0以上)
Android 实现通知栏和进度条效果(适用于Android8.0以上)
168 0
|
Android开发
[√]android创建通知栏
[√]android创建通知栏
86 1
|
Android开发
Android中下拉通知栏,Activity会走哪些生命周期?
我们就可以做一个总结:当前Activity中,下拉通知栏,是不走任何生命周期的。
238 0
|
Android开发
Android 音乐APP(五)音乐通知栏、后台播放音乐
Android 音乐APP(五)音乐通知栏、后台播放音乐
1220 0
Android 音乐APP(五)音乐通知栏、后台播放音乐
|
XML SQL 缓存
Android 音乐APP(四)显示专辑图片、本地数据库、自定义通知栏样式、通知栏显示
Android 音乐APP(四)显示专辑图片、本地数据库、自定义通知栏样式、通知栏显示
498 0
Android 音乐APP(四)显示专辑图片、本地数据库、自定义通知栏样式、通知栏显示
|
存储 XML Java
Android 天气APP(二十六)增加自动更新(检查版本、通知栏下载、自动安装)
Android 天气APP(二十六)增加自动更新(检查版本、通知栏下载、自动安装)
201 0
Android 天气APP(二十六)增加自动更新(检查版本、通知栏下载、自动安装)
|
Android开发
Android开发禁用通知栏下拉
Android开发禁用通知栏下拉
277 0
|
Android开发
Android 点击通知栏消息打开activity,并判断app是否运行
Android 点击通知栏消息打开activity,并判断app是否运行
1822 0