gpt4 book ai didi

android - 带有 FLAG_UPDATE_CURRENT 的 PendingIntent.getActivity 不会更新 Intent 的标志

转载 作者:行者123 更新时间:2023-11-29 23:17:03 24 4
gpt4 key购买 nike


public class MainActivity extends AppCompatActivity {

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Toast.makeText(this, "onNewIntent", Toast.LENGTH_SHORT).show();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent a = new Intent(this, MainActivity.class);
Intent b = new Intent(this, MainActivity.class);
b.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pia = PendingIntent.getActivity(this, 1, a, 0);
PendingIntent pib = PendingIntent.getActivity(this, 1, b, PendingIntent.FLAG_UPDATE_CURRENT);
try {
pib.send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
}

}

使用上面的代码,当 Activity 启动时,不是弹出“onNewIntent”toast,而是调用一个新的 MainActivity,忽略 FLAG_ACTIVITY_SINGLE_TOP 标志。

但如果我将 FLAG_UPDATE_CURRENT 更改为 FLAG_CANCEL_CURRENT,问题就解决了。

这是Android的错误吗?我正在运行 Android Pie 的模拟器上对此进行测试。

有什么方法可以更新 PendingIntent 的标志吗?

最佳答案

当您使用 PendingIntent.FLAG_UPDATE_CURRENT 时,这只会导致更新 Intent 中的“extras”。它对 Intent 标志没有任何作用。

如果你想改变 Intent 标志,你需要使用 2 个不同的 PendingIntent(通过使用不同的 requestCode,对于例如),或者您需要取消现有的 PendingIntent 并创建一个新的。

关于android - 带有 FLAG_UPDATE_CURRENT 的 PendingIntent.getActivity 不会更新 Intent 的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55138588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com