2013-02-08 2 views
0

Привет, я пытаюсь обновить пользовательский интерфейс из фоновой темы. Я настраиваю выбор радиокнопки программно, но, как ни странно, он не обновлял пользовательский интерфейс при запуске приложения. Но когда я отлаживаю приложение шаг за шагом, пользовательский интерфейс обновляет сам, что очень странно для меня. следующий код, который я использую для этого.Обновление переключателя seleciton на UI

Поскольку post runnable возвращает логическое значение и, похоже, возвращает true об обновлении, но он не обновляет UNI, что очень странно.

Thread

_internetConenctivityThread = new Thread(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      try 
      { 
       CheckInternetConnectivity(conManager); 
       Thread.sleep(30000); 
      } 
      catch(Exception ex) 
      { 
       Log.d("_internetConnectivityThread", "Exception while checking connectivity: " + ex.getMessage()); 
      } 
     } 
    }); 
    _internetConenctivityThread.start(); 

Метод Check

private void CheckInternetConnectivity(ConnectivityManager cm) 
    { 
     try 
     {   
      NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
      if (netInfo != null && netInfo.isConnected()) { 

       mParent.connectivity.post(new Runnable() { 

        @Override 
        public void run() { 
         // TODO Auto-generated method stub 
         // Updating Status Monitor for connectivity 
         mParent.connectivity.setChecked(true); 

        } 
       });   
      } 
      else 
      { 
       mParent.connectivity.post(new Runnable() { 

        @Override 
        public void run() { 
         // TODO Auto-generated method stub 
         // Updating Status Monitor for connectivity 
         mParent.connectivity.setChecked(false); 

        } 
       });     
      } 
     } 
     catch(Exception ex) 
     { 
      ex.getMessage(); 
     } 
    } 
+0

Как и можно обновить пользовательский интерфейс с фоновой темы? вы не получаете никаких исключений? – SKK

+0

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

ответ

0

попробовать это:

runOnUiThread(new Runnable() { 
    public void run() { 
     mParent.connectivity.setChecked(false); 
    } 
}); 
+1

И что это должно делать? Вы должны объяснить немного больше, а не просто поставить код. – partlov

Смежные вопросы