Android PendingIntent 错误: java.lang.IllegalArgumentException: Targeting S+ requires FLAG_IMMUTABLE or FLAG_MUTABLE
这是一个Java的异常错误,具体是由于在Android S (API 31)及以上版本创建PendingIntent时未指定FLAG_IMMUTABLE或FLAG_MUTABLE标志引起的。
为了解决此错误,你需要在创建PendingIntent时添加FLAG_IMMUTABLE或FLAG_MUTABLE标志。
如果你的应用程序不需要修改PendingIntent,建议使用FLAG_IMMUTABLE标志,这样可以提高性能和安全性。只有在某些功能依赖于PendingIntent可变性时,才使用FLAG_MUTABLE标志,比如需要与内联回复或气泡一起使用。
示例代码如下:
Intent intent = new Intent(context, YourActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, requestCode, intent, PendingIntent.FLAG_IMMUTABLE);
或者:
Intent intent = new Intent(context, YourActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, requestCode, intent, PendingIntent.FLAG_MUTABLE);
根据你的具体需求选择合适的标志来修复这个错误。
原文地址: https://www.cveoy.top/t/topic/qsXH 著作权归作者所有。请勿转载和采集!