如何使用 android 中的操作创建通知
How to create a notification with Action in android
我想知道如何在 android 中创建一个带有操作图标的通知,使我能够调用主要 activity 中的方法。
就像这张图片中的那个:Notification icon exemple
首先欢迎使用Whosebug。我想提醒您,这不是一个学习如何编程的网站,而是一个提出可以帮助社区的实际问题的网站。您的问题必须详细并具体说明您的代码或尝试以及错误日志。
也就是说,这是创建通知的最佳方式:
步骤 1 - 创建通知生成器
第一步是使用 NotificationCompat.Builder.build() 创建通知生成器。您可以使用 Notification Builder 设置各种通知属性(小图标、大图标、标题、优先级等)
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
步骤 2 - 设置通知属性
有了 Builder object 后,您可以根据需要使用 Builder object 设置其通知属性。但这必须至少设置以下-
- 一个小图标,由
setSmallIcon()
设置
- 一个标题,由
setContentTitle()
设置
详细文本,由setContentText()
设置
mBuilder.setSmallIcon(R.drawable.notification_icon);
mBuilder.setContentTitle("I'm a notification alert, Click Me!");
mBuilder.setContentText("Hi, This is Android Notification Detail!");
步骤 3 - 附加操作
这是可选的,仅当您要在通知中附加操作时才需要。一个操作将允许用户直接从通知转到您应用程序中的 Activity(他们可以在其中查看一个或多个事件或做进一步的工作)。
该操作由包含 Intent 的 PendingIntent 定义,该 Intent 在您的应用程序中启动 Activity。要将 PendingIntent 与手势相关联,请调用 NotificationCompat.Builder 的适当方法。
例如,如果您希望在用户单击通知抽屉中的通知文本时启动Activity,您可以通过调用 setContentIntent() 添加 PendingIntent。
A PendingIntent
object 可以帮助您代表您的应用程序执行操作,通常是在稍后的时间,无论您的应用程序是否 运行.
还有 stackBuilder
object,它将包含启动的 Activity 的人工返回堆栈。这可确保从 Activity 向后导航会导致您的应用程序转到主屏幕。
Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
第 4 步 - 发出通知
最后,您通过调用 NotificationManager.notify()
将通知 object 传递给系统以发送您的通知。确保在通知构建器 object 之前调用 NotificationCompat.Builder.build() 方法。此方法结合了所有已设置的选项和 return 新通知 object.
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// notificationID allows you to update the notification later on.
mNotificationManager.notify(notificationID, mBuilder.build());
我希望这能回答你的问题。
我想知道如何在 android 中创建一个带有操作图标的通知,使我能够调用主要 activity 中的方法。
就像这张图片中的那个:Notification icon exemple
首先欢迎使用Whosebug。我想提醒您,这不是一个学习如何编程的网站,而是一个提出可以帮助社区的实际问题的网站。您的问题必须详细并具体说明您的代码或尝试以及错误日志。
也就是说,这是创建通知的最佳方式:
步骤 1 - 创建通知生成器
第一步是使用 NotificationCompat.Builder.build() 创建通知生成器。您可以使用 Notification Builder 设置各种通知属性(小图标、大图标、标题、优先级等)
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
步骤 2 - 设置通知属性
有了 Builder object 后,您可以根据需要使用 Builder object 设置其通知属性。但这必须至少设置以下-
- 一个小图标,由
setSmallIcon()
设置
- 一个标题,由
setContentTitle()
设置
详细文本,由
设置setContentText()
mBuilder.setSmallIcon(R.drawable.notification_icon); mBuilder.setContentTitle("I'm a notification alert, Click Me!"); mBuilder.setContentText("Hi, This is Android Notification Detail!");
步骤 3 - 附加操作
这是可选的,仅当您要在通知中附加操作时才需要。一个操作将允许用户直接从通知转到您应用程序中的 Activity(他们可以在其中查看一个或多个事件或做进一步的工作)。
该操作由包含 Intent 的 PendingIntent 定义,该 Intent 在您的应用程序中启动 Activity。要将 PendingIntent 与手势相关联,请调用 NotificationCompat.Builder 的适当方法。
例如,如果您希望在用户单击通知抽屉中的通知文本时启动Activity,您可以通过调用 setContentIntent() 添加 PendingIntent。
A PendingIntent
object 可以帮助您代表您的应用程序执行操作,通常是在稍后的时间,无论您的应用程序是否 运行.
还有 stackBuilder
object,它将包含启动的 Activity 的人工返回堆栈。这可确保从 Activity 向后导航会导致您的应用程序转到主屏幕。
Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
第 4 步 - 发出通知
最后,您通过调用 NotificationManager.notify()
将通知 object 传递给系统以发送您的通知。确保在通知构建器 object 之前调用 NotificationCompat.Builder.build() 方法。此方法结合了所有已设置的选项和 return 新通知 object.
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// notificationID allows you to update the notification later on.
mNotificationManager.notify(notificationID, mBuilder.build());
我希望这能回答你的问题。