小编Har*_* Un的帖子

如何超时Asynctask并解除ProgressDialog?

我有一个问题,希望你能帮助我.我有一个Asynctask,如果我按下mainactivity中的按钮,它会开始上传数据.它工作正常,除非我有一个缓慢的互联网连接.Asynctask启动了progressdialog,如果我连接速度慢,Asynctask会停止,但Progressdialog不会消失,因为它从未到达onPostExecute.

现在我正在尝试实现超时但无法找到方法,因此progressdialog不会这样做.

这是我的代码:

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        time = System.currentTimeMillis();

        Log.d(TAG, "PBar: Hat gestartet");
        if (MainActivity.MessungStart == true)
            {
        ConnectionTask.dialog = new ProgressDialog(MainActivity.context);

        ConnectionTask.dialog.setMessage("Daten werden hochgeladen...");
        dialog.setCanceledOnTouchOutside(false);
        ConnectionTask.dialog.show();    
            }
    }

protected Void doInBackground(String... args) {

        mUser = MainActivity.username; 
        mPassword = MainActivity.password;  
        Log.d(TAG,"Async: User= "+mUser+" Password= "+mPassword);

        Timer t = new Timer();
        TimerTask tk = new TimerTask() {

              @Override
                public void run() {
                    timeout = true;
                }
            };
         t.schedule(tk, 100);
         if(timeout == true)
         {
             Log.d(TAG, "TimeOut = true");
             onPostExecute(null); …
Run Code Online (Sandbox Code Playgroud)

android timeout progressdialog android-asynctask

3
推荐指数
1
解决办法
6872
查看次数