こんにちは、バックグラウンド スレッドから UI を更新しようとしています。プログラムでラジオ ボタンの選択を設定していますが、不思議なことに、アプリを実行しても UI が更新されません。しかし、アプリケーションを段階的にデバッグすると、UI 自体が更新されますが、これは非常に奇妙です。以下は、私がそれを行うために使用しているコードです。
post runnable はブール値を返し、更新について true を返すように見えますが、非常に奇妙な UNI を更新しません。
スレッド
_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();
確認方法
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();
}
}