安卓多线程崩溃 5
我开始以为是蓝牙的问题后来随便写了个简单的多线程程序结果一运行还是崩了求助publicvoidonClick(Viewv){//TODOAuto-generatedmet...
我开始以为是蓝牙的问题
后来随便写了个简单的多线程程序
结果一运行还是崩了
求助
public void onClick(View v) {
// TODO Auto-generated method stub
MyThread myThread=new MyThread();
myThread.start();
}
});
}
public class MyThread extends Thread
{
public int i=0;
@Override
public void run() {
// TODO Auto-generated method stub
for(;i<10000;i++)
{
Toast.makeText(MainActivity.this, i, Toast.LENGTH_SHORT).show();
}
super.run();
}
}
难道是这种方法不安全? 展开
后来随便写了个简单的多线程程序
结果一运行还是崩了
求助
public void onClick(View v) {
// TODO Auto-generated method stub
MyThread myThread=new MyThread();
myThread.start();
}
});
}
public class MyThread extends Thread
{
public int i=0;
@Override
public void run() {
// TODO Auto-generated method stub
for(;i<10000;i++)
{
Toast.makeText(MainActivity.this, i, Toast.LENGTH_SHORT).show();
}
super.run();
}
}
难道是这种方法不安全? 展开
1个回答
展开全部
安卓的线程分为UI线程和工作线程,一般的只有主线程属于UI线程,其它新建的线程都属于工作线程,对UI的操作只能够放到UI线程中进行,当然SurfaceView比较的特殊,对SurfaceView的UI操作是可以放到工作线程中进行的,楼主的这种情况一般可以通过在主线程中建立一个 Hander,然后再在工作线程中通过这个Handler发送消息,主线程的Handler的回调事件收到了消息后,在回调事件中调用;Toast.makeText(MainActivity.this, i, Toast.LENGTH_SHORT).show(); 就可以了,
希望对你有用,我是ndk吧吧主,有问题可以到ndk吧留言,谢谢!
希望对你有用,我是ndk吧吧主,有问题可以到ndk吧留言,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询