提问人:steinarey 提问时间:11/1/2023 最后编辑:David Wassersteinarey 更新时间:11/1/2023 访问量:35
按下通知时将 Android 应用置于前台
Puttin an Android app to foreground when a notification is pressed
问:
我在应用程序的某个位置启动一项服务,并从那里创建通知。我将应用程序置于后台,然后单击通知
我想要发生的情况:应用程序以与它所处的状态相同的状态进入前台,就像我按下设备上的“查看所有后台应用程序”按钮并选择它一样。
实际发生的情况:我转到应用程序的主屏幕。
我梳理了一堆线程并尝试了不同的东西。每次我更改任何内容时,当我按下通知时,应用程序根本无法打开。
class TestService : Service() {
private lateinit var notificationBuilder: NotificationCompat.Builder
...
private fun createNotification(): Notification {
...
notificationBuilder = NotificationCompat.Builder(this, channelId)
notificationBuilder
.setSmallIcon(R.drawable.ic_notif)
.setContentTitle(titleText)
.setContentText(getFormattedTime())
.setOnlyAlertOnce(true)
.setContentIntent(PendingIntent.getActivity(this, 1, Intent(this, MainActivity::class.java), PendingIntent.FLAG_IMMUTABLE))
.setOngoing(true)
...
return notificationBuilder.build()
}
答:
0赞
David Wasser
11/1/2023
#1
您只需要改用启动 Intent
,如下所示:
val intent = getPackageManager().
getLaunchIntentForPackage("my.package.name")
然后
.setContentIntent(PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_IMMUTABLE))
启动 Intent
设置了一些额外的标志,这些标志会导致任务简单地被带到前台(如果它已经在运行)。这与用户从主屏幕点击应用程序图标时的效果相同。
评论