原文: https://javatutorial.net/notifications-in-android

Android 应用程序中的通知非常有用。 本教程将通过示例说明如何在应用程序中设置通知。

通知

通知是通知或通知某事。 Android 应用程序中的通知非常有用。 它提供有关重要信息的信息。 现在,一天的用户希望易于使用,而又不想一次又一次地打开应用以获取新的更新。 取而代之的是,它们启用上推通知。 例如,没有人希望在一天内一次又一次地检查电子邮件,最好是在收到新邮件时调整通知。 为了满足这种通知需求,本教程提供了一个简单的示例来设置通知。

NotificationCompat.Builder

NotificationCompat构建器类可帮助我们开发通知布局。 它有许多用于在应用程序中进行通知的方法。 以下是其中一些:

  • addNotification(NotificationCompat.Action action):顾名思义,此方法用于向通知中添加操作。
  • addPerson(String uri):此方法用于将人添加到通知中。 例如,来自特定人的电子邮件。
  • getNotification():用于获取通知。
  • build():用于构建通知。
  • setCategory(String category):此方法用于设置通知类别。
  • setColor(int argb):此方法用于设置通知颜色。
  • setContentTitle(CharSequence title):此方法用于设置通知栏的标题。
  • setContentText(CharSequence text):此方法用于设置通知栏中显示的文本。

通知管理器

通知管理器是一个类,用于告知用户后台发生了某些事情。 它通知事件。

Android 中的通知示例

让我们开始创建一个简单的示例,该示例演示如何在 Android 应用中使用通知。 打开您的 Android Studio 并创建主要活动。 在主要活动中,只有文本视图,图像视图和按钮。 当用户单击按钮时,它将在状态栏中显示通知。 这是activity_main.xml的 XML 布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. tools:context="MainActivity">
  7. <TextView
  8. android:id="@+id/textView2"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_centerHorizontal="true"
  12. android:layout_marginTop="48dp"
  13. android:text="Java Tutorial "
  14. android:textColor="@android:color/holo_red_dark"
  15. android:textSize="30dp" />
  16. <ImageButton
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:id="@+id/imageButton"
  20. android:src="@drawable/message"
  21. android:layout_below="@+id/textView2"
  22. android:layout_centerHorizontal="true"
  23. android:layout_marginTop="42dp" />
  24. <Button
  25. android:id="@+id/button"
  26. android:layout_width="150dp"
  27. android:layout_height="wrap_content"
  28. android:layout_below="@+id/imageButton"
  29. android:layout_centerHorizontal="true"
  30. android:layout_marginTop="62dp"
  31. android:background="@android:color/holo_red_dark"
  32. android:text="Notification"
  33. android:onClick="notification"
  34. android:textColor="@android:color/background_light" />
  35. </RelativeLayout>

现在为通知创建另一个布局,这是activity_notification_bar.xml的代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent" >
  6. <TextView
  7. android:layout_width="fill_parent"
  8. android:layout_height="400dp"
  9. android:text="You have a new unread message...." />
  10. </LinearLayout>

这是NotificationBar.java

  1. package com.example.admin.androidnotifications;
  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. public class NotificationBar extends Activity{
  5. @Override
  6. public void onCreate(Bundle savedInstanceState)
  7. {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_notification_bar);
  10. }
  11. }

现在打开您的MainActivity.java并粘贴以下代码

  1. package com.example.admin.androidnotifications;
  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.app.NotificationManager;
  5. import android.app.PendingIntent;
  6. import android.content.Context;
  7. import android.content.Intent;
  8. import android.support.v4.app.NotificationCompat;
  9. import android.view.View;
  10. import android.widget.Button;
  11. public class MainActivity extends Activity {
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState)
  14. {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. }
  18. public void notification(View view)
  19. {
  20. addNotification();
  21. }
  22. private void addNotification()
  23. {
  24. NotificationCompat.Builder builder =
  25. new NotificationCompat.Builder(this)
  26. .setSmallIcon(R.drawable.message)
  27. .setContentTitle("Unread Message") //this is the title of notification
  28. .setColor(101)
  29. .setContentText("You have an unread message."); //this is the message showed in notification
  30. Intent intent = new Intent(this, MainActivity.class);
  31. PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
  32. builder.setContentIntent(contentIntent);
  33. // Add as notification
  34. NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
  35. manager.notify(0, builder.build());
  36. }
  37. }

现在运行您的应用,这是输出

Android 中的通知 - 图1

通知示例

单击“通知”按钮后,新的通知将出现在状态栏中。 这是它的样子

Android 中的通知 - 图2

新通知

您可以通过单击链接下载此项目。