android - 在活动处于前台时接收明确的意图
问题描述
我的应用程序有一项活动和一项服务。该服务启动一个前台通知,该通知有一个操作按钮,在某些情况下需要告诉活动做一些事情,而不仅仅是回到前面。它使用 Extras 来表明这一点。
我的问题是我找不到任何关于如何接收显式意图的文档,除了通过传递给onCreate()
它的“捆绑包”,通常不会调用它,因为可能已经创建了活动。
你如何在 onCreate() 之后收到一个意图?
通知代码片段:
val actionIntent = Intent(this, MainActivity::class.java)
actionIntent.action = actionText
actionIntent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
val pendingActionIntent: PendingIntent = PendingIntent.getActivity(this, 0, actionIntent, 0)
val actionCancel: NotificationCompat.Action = NotificationCompat.Action.Builder(R.drawable.ic_cancel_black_24dp,
actionText,
pendingActionIntent).build()
val notificationBuilder: NotificationCompat.Builder = NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle(getText(R.string.notification_title))
.setSmallIcon(R.drawable.ic_logo_24dp)
.setContentIntent(pendingIntent)
.setOnlyAlertOnce(true)
.addAction(actionCancel)
.setContentText(text)
startForeground(ONGOING_NOTIFICATION_ID, notificationBuilder.build())
解决方案
覆盖onNewIntent()
。如果活动已经存在,并且Intent
正在将其带回前台,则将其Intent
传递给onNewIntent()
.
推荐阅读
- javascript - 如果超过一定的文件大小限制,如何创建更多的 javascript 块?
- rust - 函数参数中的可变借用
- python - 大熊猫的长度不匹配
- python - 如何在 Pytorch 数据集上应用 OpenCV 过滤器?
- java - 使用 Java 录制扬声器输出
- python-3.x - 熊猫检查两个值是否在统计上不同
- c++ - 检查树是否为 bst 但发生错误。失败案例 #25/36:未知信号 11
- python - 在 Python 中对数据框进行排序
- reactjs - 盖茨比中的 children 变量是什么?我怎么能把它分配给另一个组件?
- docusignapi - Docusign API:使用自定义字段搜索给定的信封/信封