У меня есть этот метод из отдельного класса, в котором при завершении вызова цвет моего ImageView изменяется с красного на белый. Пример кода ниже:Java runOnUiThread и Thread.sleep
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. Он ждет 10 секунд, прежде чем ниже код запускается на выполнение
TargetDetails.oncall.setVisibility(View.VISIBLE);
TargetDetails.endcall.setVisibility(View.GONE);
Я думаю, что я что-то пропустил в отношении Thread.sleep. Я просто хочу избавиться от него, но я не уверен в альтернативе. Помогите. Благодарю.
если вы звоните 'endOfCall' из uiThread, it'll сна в течение 10 секунд, а затем закончить блок и запустить незавершенные задачи, такие как изменения видимости ... – eduyayo
Почему здесь спит? – ToYonos
Это часть процесса .. он спит в течение нескольких секунд (не совсем 10 секунд), а затем переходит к другому намерению, когда он снова делает вызов. Вот почему я поставил сон после видимости, потому что думал, что сначала обработает видимость, затем сон. – user3360031