在AsyncTask中添加Thread.Sleep时间

时间:2014-10-31 22:39:40

标签: android android-asynctask

在我的应用程序中,当用户触摸屏幕时,我正在显示/隐藏页脚。因此,当用户触摸屏幕页脚变得可见时,页脚在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秒添加到当前不是的休眠时间。我希望我能够解释我想要实现的目标。

0 个答案:

没有答案