在这个非常简单的代码示例中,消息每隔一段时间就丢失一次。这有什么不对?
public class AndroidTesterActivity extends Activity {
private static final int END = 500000;
private static int i = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
i=0;
}
@Override
public void onResume()
{
super.onResume();
while(i < END)
{
Log.d("x", ""+i++);
}
Log.e("x", "END");
}
}
例如,我得到两条连续的日志消息139371和140001 ......所以即使i
被计算在内,仍会丢失630条消息?如果没有写入日志,如何计算i
?
我已经搜索过,如果其他人已经有同样的问题,但没有找到任何东西。
感谢您的帮助
答案 0 :(得分:2)
只是一个没有受过教育的猜测:Log类并没有直接推送所有内容,我认为它会在某些特定条件下收集和推送。因为你的循环应该非常快,所以在某些情况下,日志缓冲区(或其他东西)可能会在刷新之前被覆盖。
我会尝试在一个线程中创建它并在sleep()
之间调用一些ms。也许你可以重现这个或找到这种行为消失的值。