If(语句)延迟
If(statement) delay
这是一个好奇的问题,但有没有办法延迟 if 语句中的最后一行。
例如:
if(m_Toolbar.getVisibility() == View.VISBILE) {
...........
m_Toolbar.setVisibility(View.GONE);
}
你会如何延迟最后一行,如 (ie.GONE)?
您可以使用下面的 TimeUnit.SECONDS.sleep(1);
等待一秒钟。
请不要使用Thread.Sleep()
会冻结UI使用Handler
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
}
},delayMilliseconds);
Thread.sleep
会导致UI冻结,我建议用Handler
代替
if(m_Toolbar.getVisibility() == View.VISBILE) {
...........
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
m_Toolbar.setVisibility(View.GONE);
}
}, 3000);//3 seconds
}
最好的是:
if(m_Toolbar.getVisibility() == View.VISBILE) {
...........
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
m_Toolbar.setVisibility(View.GONE);
}
}, 5000);//5 seconds
}
但是如果你需要乘法动作,你可以使用这个:
if(m_Toolbar.getVisibility() == View.VISBILE) {
int Delay = 5; //set Your request delay
new Thread(new Runnable(){
public void run() {
// TODO Auto-generated method stub
do{
try {
runOnUiThread(new Runnable() {
public void run() {
Delay --;
if( Delay == 0){
m_Toolbar.setVisibility(View.GONE);
}else if( Delay == 1){
//another action
}
}
});
Thread.sleep(1000);
} catch (InterruptedException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}while(Delay > 0);
}
}).start();
}
这是一个好奇的问题,但有没有办法延迟 if 语句中的最后一行。
例如:
if(m_Toolbar.getVisibility() == View.VISBILE) {
...........
m_Toolbar.setVisibility(View.GONE);
}
你会如何延迟最后一行,如 (ie.GONE)?
您可以使用下面的 TimeUnit.SECONDS.sleep(1);
等待一秒钟。
请不要使用Thread.Sleep()
会冻结UI使用Handler
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
}
},delayMilliseconds);
Thread.sleep
会导致UI冻结,我建议用Handler
代替
if(m_Toolbar.getVisibility() == View.VISBILE) {
...........
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
m_Toolbar.setVisibility(View.GONE);
}
}, 3000);//3 seconds
}
最好的是:
if(m_Toolbar.getVisibility() == View.VISBILE) {
...........
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
m_Toolbar.setVisibility(View.GONE);
}
}, 5000);//5 seconds
}
但是如果你需要乘法动作,你可以使用这个:
if(m_Toolbar.getVisibility() == View.VISBILE) {
int Delay = 5; //set Your request delay
new Thread(new Runnable(){
public void run() {
// TODO Auto-generated method stub
do{
try {
runOnUiThread(new Runnable() {
public void run() {
Delay --;
if( Delay == 0){
m_Toolbar.setVisibility(View.GONE);
}else if( Delay == 1){
//another action
}
}
});
Thread.sleep(1000);
} catch (InterruptedException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}while(Delay > 0);
}
}).start();
}