Android 12 Kotlin -强烈考虑使用FLAG_IMMUTABLE,只有当某些功能依赖于PendingInt



这是pendingIntent的代码:

val pi =
PendingIntent.getActivity(
applicationContext,
0,
ii,
PendingIntent.FLAG_UPDATE_CURRENT
)

我得到这个错误时使用它:

java.lang.IllegalArgumentException: de.xxx.xxx: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.

我仍然需要更新活动,所以我怎么能添加这个FLAG_IMMUTABLEFLAG_MUTABLE,不管这是什么鬼,仍然能够更新活动?基于这个答案,我尝试了:

val pi =
PendingIntent.getActivity(
applicationContext,
0,
ii,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
)

但是这会导致语法错误!

那么代码应该是什么样子的呢?

基于这个答案

该问题和答案中目前显示的代码是用Java编写的。你在用Kotlin写。

在Kotlin中,使用or位操作符:
val pi =
PendingIntent.getActivity(
applicationContext,
0,
ii,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

相关内容

最新更新