Привет, я пытаюсь обновить пользовательский интерфейс из фоновой темы. Я настраиваю выбор радиокнопки программно, но, как ни странно, он не обновлял пользовательский интерфейс при запуске приложения. Но когда я отлаживаю приложение шаг за шагом, пользовательский интерфейс обновляет сам, что очень странно для меня. следующий код, который я использую для этого.Обновление переключателя 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();
}
}
Как и можно обновить пользовательский интерфейс с фоновой темы? вы не получаете никаких исключений? – SKK
Нет. Ну, я вызываю пост, выполняемый в фоновом потоке, который является потоком пользовательского интерфейса, и который делает обновление в целом, и это сработало для меня. –