Android PendingEvent.getActivity,带有标志“更新”和“当前已赢”';t更新意图';s旗 公共类MainActivity扩展了AppCompatActivity{ @凌驾 受保护的void onNewIntent(意图){ super.onNewIntent(意向); Toast.makeText(这是“onNewIntent”,Toast.LENGTH_SHORT).show(); } @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 意图a=新意图(此,MainActivity.class); 意图b=新意图(此,MainActivity.class); b、 添加标志(意图、标志、活动、单个标志、顶部); pendingent pia=pendingent.getActivity(this,1,a,0); PendingEvent pib=PendingEvent.getActivity(此,1,b,PendingEvent.FLAG_更新_当前); 试一试{ pib.send(); }捕获(PendingEvent.CanceledException e){ e、 printStackTrace(); } } }

Android PendingEvent.getActivity,带有标志“更新”和“当前已赢”';t更新意图';s旗 公共类MainActivity扩展了AppCompatActivity{ @凌驾 受保护的void onNewIntent(意图){ super.onNewIntent(意向); Toast.makeText(这是“onNewIntent”,Toast.LENGTH_SHORT).show(); } @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 意图a=新意图(此,MainActivity.class); 意图b=新意图(此,MainActivity.class); b、 添加标志(意图、标志、活动、单个标志、顶部); pendingent pia=pendingent.getActivity(this,1,a,0); PendingEvent pib=PendingEvent.getActivity(此,1,b,PendingEvent.FLAG_更新_当前); 试一试{ pib.send(); }捕获(PendingEvent.CanceledException e){ e、 printStackTrace(); } } },android,android-pendingintent,Android,Android Pendingintent,在上面的代码中,当活动开始时,会弹出一个新的main活动,而不是一个“onNewIntent”toast,忽略FLAG\u Activity\u SINGLE\u TOP标志 但如果我将FLAG\u UPDATE\u CURRENT更改为FLAG\u CANCEL\u CURRENT,问题就解决了 这是安卓的bug吗?我正在运行Android Pie的模拟器上测试这个 有没有办法更新PendingEvent的标志 当您使用pendingent.FLAG\u UPDATE\u CURRENT时,此

在上面的代码中,当活动开始时,会弹出一个新的main活动,而不是一个“
onNewIntent
”toast,忽略
FLAG\u Activity\u SINGLE\u TOP
标志

但如果我将
FLAG\u UPDATE\u CURRENT
更改为
FLAG\u CANCEL\u CURRENT
,问题就解决了

这是安卓的bug吗?我正在运行Android Pie的模拟器上测试这个


有没有办法更新PendingEvent的标志

当您使用
pendingent.FLAG\u UPDATE\u CURRENT
时,此只会导致
Intent
中的“额外内容”被更新。它对
Intent
标志没有任何作用


如果要更改
Intent
标志,则需要使用两个不同的
pendingent
s(例如,通过使用不同的
requestCode
s),或者需要取消现有的
pendingent
并创建一个新的标记。

那么,这是预期的行为吗?令人尴尬的是,我们不能直接更新意图的标志,而PendingEvent认为具有不同标志的两个意图是相同的。是的,这是意图行为。
pendingent
可能已提供给(或可能正在被)其他应用程序使用,因此您无法修改
意图的行为(即:更改标志)。这是故意的。