根据可调试标志Google recommends the following code:
启用WebView调试if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE)) {
WebView.setWebContentsDebuggingEnabled(true);
}
}
这是否有副作用,因为&=
运算符会重新分配flag
字段?我假设在此调用之后应用程序标志减少到FLAG_DEBUGGABLE
。为什么您希望此处的&=
运算符代替&
?
答案 0 :(得分:1)
是的,它是文档中的一个错误。代码坏了。除了ApplicationInfo.flags
之外,它确实删除了FLAG_DEBUGGABLE
以外的任何标记。正确的检查是getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE
。此检查不会修改flags
字段。
答案 1 :(得分:-1)
不,int delay = 1000; // 1 second
int interval = 60000;
int elapsed = 0;
while (!worker.CancellationPending)
{
elapsed = 0;
do {
Thread.Sleep(delay);
}
while (elapsed < interval && !worker.CancellationPending);
}
e.Cancel = true;
表示&=
只是将该标记从getApplicationInfo().flags = getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE
设置为0
。
它就像1
或+=
一样缩短了表达式。
将保留所有现有标志。