@Override
public void run() {
while (flag) {
long start = System.currentTimeMillis();
myDraw();
logic();
//clickTest();
long end = System.currentTimeMillis();
try {
if (end – start < 50) {
Thread.sleep(50 – (end – start));
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void clickTest(){
new AlertDialog.Builder(this.getContext())
.setTitle(“TITLE”)
.setMessage(“CONTENT”)
.setPositiveButton(“YES”, null)
.setNegativeButton(“NO”, null)
.show();
}
本人在surfaceview的run函数添加了一个弹出对话框,为何程序无法运行?问一下各位高手surfaceview中的哪些 位置可以
添加弹出对话框?多谢!
public void run() {
while (flag) {
long start = System.currentTimeMillis();
myDraw();
logic();
//clickTest();
long end = System.currentTimeMillis();
try {
if (end – start < 50) {
Thread.sleep(50 – (end – start));
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void clickTest(){
new AlertDialog.Builder(this.getContext())
.setTitle(“TITLE”)
.setMessage(“CONTENT”)
.setPositiveButton(“YES”, null)
.setNegativeButton(“NO”, null)
.show();
}
本人在surfaceview的run函数添加了一个弹出对话框,为何程序无法运行?问一下各位高手surfaceview中的哪些 位置可以
添加弹出对话框?多谢!
解决方案
5
这个方法本人用过,你可以试试
http://blog.csdn.net/freeman527/article/details/9097923
http://blog.csdn.net/freeman527/article/details/9097923
5
不在UI线程进行UI更新操作了吧
5
原因是你弹出对话框的操作在run里,而android不允许在子线程操作主线程的ui,你可以写一个handler,在handler里调用clickTest方法,然后在你run里注掉的clickTest位置调用handler
5
使用一个handle来传递消息弹出对话框,不能再run方法里面直接操作UI,会报异常的