我是android新手我正在尝试创建一个新线程来调用另一个方法。 但不要为什么会抛出错误。
这是我的存根
void test()
{
int i=0;
Toast.makeText(getApplicationContext(), "Testing", Toast.LENGTH_SHORT).show();
}
public void Button2_Click(View v)
{
Thread thread = new Thread()
{
@Override
public void run() {
test();
}
};
thread.start();
}
答案 0 :(得分:0)
答案 1 :(得分:0)
你不能把Toast放在一个线程中。从代码中删除Toast消息。它会正常工作。
答案 2 :(得分:0)
这就是你可以做到的。
`new Thread(new Runnable() {
public void run() {
Bitmap b = loadImageFromNetwork();
mImageView.setImageBitmap(b);
}
}).start();
'
支架不匹配。
答案 3 :(得分:0)
您无法从主线程以外的其他线程操作UI,并且启动Toast涉及用户界面。
更改您的测试功能
void test()
{
int i=0;
Log.d("Test","Testing");
}
现在如果线程工作,你将在LogCat中登录一个日志。如果要从其他主题显示Toast,则必须使用Handler或runOnUiThread。
答案 4 :(得分:0)
如果绝对必须使用Toast,则应使用runOnUIThread()方法并在run()方法中向其传递一个新的Runnable()匿名类Toast。
不过,这似乎没有多大意义。也许你想让test()变得静态。也许可以更好地了解你想做什么以及你得到的确切错误?