【问题标题】:How to close an activity after timeout超时后如何关闭活动
【发布时间】:2016-03-30 14:43:14
【问题描述】:

我在 android 应用程序中有登录屏幕,它有 45 秒的超时时间,它还显示“超时”的弹出窗口,但在点击弹出应用程序崩溃后该活动没有关闭或完成

public HttpClient Client
        {
            get
            {
                if (_client != null) return _client;


                var httpClient = new HttpClient(new NativeMessageHandler {UseCookies = false});
                httpClient.BaseAddress = new Uri(ApplicationSettings.BaseServiceUrl);
                httpClient.Timeout = TimeSpan.FromMilliseconds(45000);
                return _client = httpClient;

            }
        }

        public HttpClient ClientPreAuthenticated
        {
            get
            {
                if (_client != null) return _client;

                var httpClient = new HttpClient(new NativeMessageHandler { UseCookies = false, PreAuthenticate = true });
                httpClient.BaseAddress = new Uri(ApplicationSettings.BaseServiceUrl);
                httpClient.Timeout = TimeSpan.FromMilliseconds(45000);
                return _client = httpClient;
            }
        }

建议我关闭此活动的任何代码

【问题讨论】:

  • 把它放在try catch finally 和finally 块中关闭连接

标签: c# android xamarin mvvmcross


【解决方案1】:

Task.Factory.StartNew(async() => { await Task.Delay(45000); Finish(); });

【讨论】:

    【解决方案2】:

    在您的调用者 (btnLoginClicked) 或其他任何内容中,您需要处理从 httpclient 代码超时触发的 Timeout 异常或事件 .. 然后只需在 catch 子句中调用 Finish() .. 如果您不这样做似乎知道如何捕捉从您的 HttpClient 引发的超时,也许检查一下:How can I tell when HttpClient has timed out?

    【讨论】:

      猜你喜欢
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      相关资源
      最近更新 更多