Как исключить определенные сообщения по имени TAG с помощью Android adb logcat?

Я не согласен с людьми, которые заявляют: «В чем смысл проверки подключения перед выполнением задачи, так как сразу после проверки соединение может быть потеряно». Конечно, существует определенная неопределенность во многих задачах программирования, которые мы, как разработчики, предпринимаем, но уменьшение неопределенности до уровня принятия является частью задачи.

Недавно я столкнулся с этой проблемой, создав приложение, которое включает в себя который связан с сервером онлайн-плитки. Эта функция была отключена, когда было отмечено отсутствие подключения к Интернету.

Некоторые ответы на этой странице были очень хорошими, но, тем не менее, вызывали множество проблем с производительностью, таких как зависание, главным образом в случае отсутствия связи.

Вот решение, которое я в конечном итоге использовал с помощью некоторых из этих ответов и моих коллег:

         // Insert this where check is required, in my case program start
         ThreadPool.QueueUserWorkItem(CheckInternetConnectivity);
    }

    void CheckInternetConnectivity(object state)
    {
        if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
        {
            using (WebClient webClient = new WebClient())
            {
                webClient.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache);
                webClient.Proxy = null;
                webClient.OpenReadCompleted += webClient_OpenReadCompleted;
                webClient.OpenReadAsync(new Uri("<url of choice here>"));
            }
        }
    }

    volatile bool internetAvailable = false; // boolean used elsewhere in code

    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            internetAvailable = true;
            Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
            {
                // UI changes made here
            }));
        }
    }
119
задан Kostas 1 April 2011 в 09:19
поделиться