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(); } } }
在上面的代码中,当活动开始时,会弹出一个新的main活动,而不是一个“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时,此
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
可能已提供给(或可能正在被)其他应用程序使用,因此您无法修改意图的行为(即:更改标志)。这是故意的。