代码和输出:
private void myFunc()
{
itemsIdsArray = new boolean[3];
for(int i = 0;i<itemsIdsArray.length;i++){
itemsIdsArray[i] = true;
}
for(int i = 0;i<itemsIdsArray.length;i++){
if(itemsIdsArray[i]){
Log.d(Global.TAG,"first in i: " + i);
}
}
Thread timer = new Thread(){
public void run(){
try{
for(int i = 0;i<itemsIdsArray.length;i++){
if(itemsIdsArray[i]){
Log.d(Global.TAG,"second in i: " + i);
}
}
}finally{
}
}
};
timer.start();
}
输出:
08-15 03:27:38.136: D/MyTag(22229): first in i: 0
08-15 03:27:38.136: D/MyTag(22229): first in i: 1
08-15 03:27:38.136: D/MyTag(22229): first in i: 2
为什么第二个循环没有输出?
从代码上来看执行并无问题,会两次都打印
Thread timer = new Thread(){
public void run(){
try{
for(int i = 0;i<itemsIdsArray.length;i++){
if(itemsIdsArray[i]){
Log.d(Global.TAG,"second in i: " + i);
}
}
Thread.sleep(100);//加上这句试试看看行不行,try方法最好跟一个catch{}块
}finally{
}
}
};
timer.start();