这是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.
我仍然需要更新 Activity ,所以如何添加 FLAG_IMMUTABLE
或 FLAG_MUTABLE
这是什么鬼,仍然能够更新 Activity ?基于 this我试过的答案:val pi =
PendingIntent.getActivity(
applicationContext,
0,
ii,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
)
但这会产生语法错误!那么代码应该怎么看呢?
最佳答案
Based on this answer
该问题和答案中目前显示的代码是Java。你正在用 Kotlin 写作。
在 Kotlin 中,使用 the
or
bitwise operator :val pi =
PendingIntent.getActivity(
applicationContext,
0,
ii,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)
关于Android 12 Kotlin - 强烈考虑使用 FLAG_IMMUTABLE,仅当某些功能依赖于 PendingIntent 可变时才使用 FLAG_MUTABLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72120158/