在我的应用程序中,当用户触摸屏幕时,我正在显示/隐藏页脚。因此,当用户触摸屏幕页脚变得可见时,页脚在5秒后自动隐藏。等待5秒我在AsyncTask中使用Thread.Sleep,以便UI不会冻结。
if (!IsShowing) {
footer.setVisibility(View.VISIBLE);
IsShowing = true;
WaitInThread wait = new WaitInThread(ViewChartActivity.this);
wait.execute(5000);
}
下面是实现AsyncTask的WaitInThread类的代码。
public class WaitInThread extends AsyncTask<Integer, Void, Boolean> {
private Activity activity;
private AsynWaitThread callback;
public WaitInThread(Activity _activity) {
this.activity = _activity;
this.callback = (AsynWaitThread) activity;
}
@Override
protected Boolean doInBackground(Integer... arg0) {
try {
synchronized(this) {
Thread.sleep(arg0[0]); // LOCK is held
}
return true;
}
catch (Exception e) {
e.printStackTrace();
}
return true;
}
@Override
protected void onPostExecute(Boolean result) {
try {
// TODO Auto-generated method stub
super.onPostExecute(result);
callback.onWaitComplete();
}
catch (Exception e) {
e.printStackTrace();
}
}
目前,页脚会在Touch上显示,并在5秒后自动隐藏。我想要实现的是增加线程休眠时间。因此,假设用户触摸屏幕并且线程在AsyncTask内部休眠,因此如果用户在5秒之前再次触摸屏幕,则应将5秒添加到当前不是的休眠时间。我希望我能够解释我想要实现的目标。