0

こんにちは、バックグラウンド スレッドから 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();
        }
    }
4

1 に答える 1

0

これを試して:

runOnUiThread(new Runnable() {
    public void run() {
        mParent.connectivity.setChecked(false);
    }
});
于 2013-02-08T13:10:56.700 に答える