【问题标题】:Android AsyncTask How to Set TimerAndroid AsyncTask 如何设置定时器
【发布时间】:2014-07-03 03:16:54
【问题描述】:

我是 Async Task android 的新手

我真的只有一个简单的问题.. 如果以前有人问过这个问题,请告诉我在哪里寻找

我正在使用 AsyncTask

我在这个异步任务中的 doInBackground 用于向我自己的服务器发送 POST 请求

但有时,当我的服务器因电力或其他问题而关闭时,

此 AsyncTask 将永远加载

当异步任务仍在运行时,我打开我的计算机,服务器再次启动,但异步任务仍在运行并永远加载,直到我关闭程序并重新运行

我不希望我的用户体验它

我猜,我想要的是

让异步任务运行 doInBackground 大概 20 秒,20 秒后,如果仍然没有结果,那么我会做一些事情

我该怎么做?

我应该在这 20 秒内创建另一个线程吗? 或者有没有可以设置为异步任务的计时器..

谢谢之前..

【问题讨论】:

    标签: java android multithreading android-asynctask


    【解决方案1】:

    您应该为网络操作添加超时。那样的话,如果超过这个超时时间就会抛出异常。

    例如,如果使用DefaultHttpClient,它会是这样的:

    HttpParams httpParameters = client.getParams();
    HttpConnectionParams.setConnectionTimeout(httpParameters, CONNECTION_TIMEOUT);
    HttpConnectionParams.setSoTimeout(httpParameters, SOCKET_TIMEOUT);
    

    如果是HttpUrlConnection,请使用:

    connection.setConnectTimeout(CONNECTION_TIMEOUT);
    connection.setReadTimeout(SOCKET_TIMEOUT);
    

    CONNECTION_TIMEOUTSOCKET_TIMEOUT 以毫秒为单位。

    【讨论】:

      猜你喜欢
      • 2011-12-14
      • 2018-06-15
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 2019-09-17
      • 2013-07-16
      • 1970-01-01
      相关资源
      最近更新 更多