3 回答

TA貢獻1848條經驗 獲得超6個贊
子線程中不能彈Toast,不能更新UI,你可以在子線程中使用Handler回調,在主線程中彈Toast,可以這樣寫:
主線程在 onCreate方法之外:
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
Toast.makeText(ThreadActivity.this, "toast", Toast.LENGTH_SHORT).show();
break;
}
super.handleMessage(msg);
}
};
子線程:
try {
Thread.sleep(5000);
Message msg = new Message();
msg.what = 1;
mHandler.sendMessage(msg);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

TA貢獻2039條經驗 獲得超8個贊
Toast.makeText(ThreadActivity.this, "toast", Toast.LENGTH_SHORT).show();
他是要再主線程中被調用,也就是ThreadActivity.this所在的線程中調用。
直接和context對應的。
簡介:
編程是編寫程序的中文簡稱,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,是計算體系按照該計算方式運行,并最終得到相應結果的過程。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
編程:設計具備邏輯流動作用的一種"可控體系"【注:編程不一定是針對計算機程序而言的,針對具備邏輯計算力的體系,都可以算編程。】

TA貢獻1808條經驗 獲得超4個贊
請注意:Toast.makeText(ThreadActivity.this, "toast", Toast.LENGTH_SHORT).show();
他是要再主線程中被調用,也就是ThreadActivity.this所在的線程中調用。
直接和context對應的。
添加回答
舉報