Intent.addFlags 使用 for 循环
Intent.addFlags using for loop
使用 for 循环向意图添加标志是否会覆盖之前在循环中添加的标志?
示例 1:
我想达到的目标
int[] flags = {Intent.FLAG_ACTIVITY_NEW_TASK, Intent.FLAG_ACTIVITY_CLEAR_TASK};
for (int flag: flags) {
intent.addFlags(flag);
}
示例 2:
通常如何添加标志
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
示例 3:
示例 1 中 for 循环的简单代码表示
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
原因:
例4:
我正在将标志传递给方法
public void startActivity(int[] flags) {
for (int flag: flags) {
intent.addFlags(flag);
}
}
分辨率:
如果 for 循环确实覆盖了之前添加的标志,我如何使用示例 4 中的方法实现示例 2 中的代码?
我其实并不熟悉 android Intent,但看起来你只是简单地组合存储在整数中的位,所以你可以这样做:
int combinedFlags = 0;
for (int flag : flags) {
combinedFlags |= flag;
}
intent.addFlags(combinedFlags);
使用 for 循环向意图添加标志是否会覆盖之前在循环中添加的标志?
示例 1:
我想达到的目标
int[] flags = {Intent.FLAG_ACTIVITY_NEW_TASK, Intent.FLAG_ACTIVITY_CLEAR_TASK};
for (int flag: flags) {
intent.addFlags(flag);
}
示例 2:
通常如何添加标志
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
示例 3:
示例 1 中 for 循环的简单代码表示
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
原因:
例4:
我正在将标志传递给方法
public void startActivity(int[] flags) {
for (int flag: flags) {
intent.addFlags(flag);
}
}
分辨率:
如果 for 循环确实覆盖了之前添加的标志,我如何使用示例 4 中的方法实现示例 2 中的代码?
我其实并不熟悉 android Intent,但看起来你只是简单地组合存储在整数中的位,所以你可以这样做:
int combinedFlags = 0;
for (int flag : flags) {
combinedFlags |= flag;
}
intent.addFlags(combinedFlags);