0

ハンドラーとタイマータスクに問題がある ハンドラーを終了して接続を確認し、2 つの別々のスレッドで UI を更新すると、動作します。しかし、ネットワーク接続を定期的に更新したい。たぶん5秒ごとに実行します。これを行うには、Timer.schedule を使用します。しかし、アプリケーションは失敗しました。タイマーが UI スレッドに移動できないかどうかはわかりません。

また、そのようなマルチタスクを実行するためのより良い方法があるかどうかもわかりません。AsyncTask,Looper のような別の方法があるかどうかを知りたいです。ありがとうございました

public class ViewPostTest extends Activity { private String connection_status = null;

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final TextView timer_view = (TextView) findViewById(R.id.result);
    final Runnable runnable = new Runnable(){

        public void run() {
            // TODO Auto-generated method stub
            ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkinfo = manager.getActiveNetworkInfo();

            if(networkinfo.isConnected())
            {
                connection_status = "Connected";
            }
            else
            {
                connection_status = "Disconnected";
            }
            timer_view.post(new Runnable(){

                public void run() {
                    // TODO Auto-generated method stub
                    timer_view.setText(connection_status);
                }});

        }};
    TimerTask task1 = new TimerTask(){

        @Override
        public void run() {
            // TODO Auto-generated method stub
            Handler handler = new Handler();
            handler.post(runnable);
        }};
    Timer timer1 = new Timer();
    timer1.schedule(task1, 0,5000);


}

}
4

0 に答える 0