本文介紹了Java runOnUiThread和Thread.sleep的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我的這個方法來自一個單獨的類,其中當調用結束時,我的ImageView的顏色從紅色變為白色。示例代碼如下:
public void endOfCall(){
((Activity)mContext).runOnUiThread(new Runnable(){
@Override
public void run(){
TargetDetails.oncall.setVisibility(View.VISIBLE);
TargetDetails.endcall.setVisibility(View.GONE);
}
});
try{
call.endCall();
}catch (SipException se) {}
call.close();
//this is just a representation; not the actual code
if(true){
Thread.sleep(10000);
}
//new intent here
}
問題出現在我放置Thread.sleep的‘if’條件時。它會等待10秒,然后執行以下代碼
TargetDetails.oncall.setVisibility(View.VISIBLE);
TargetDetails.endcall.setVisibility(View.GONE);
我想我在這里遺漏了一些關于線程的東西。我只想擺脫它,但我不確定除此之外還有其他選擇。幫助。謝謝。
推薦答案
使用Handler而不是將線程置于休眠狀態。
所以不要if(true) {.....}
試試:
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override public void run() {
//new intent here
}
}, 10000);
這篇關于Java runOnUiThread和Thread.sleep的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,