使用Timer和Handler处理UI线程

时间:2013-01-14 14:22:46

标签: android handler runnable timertask

我在处理程序和时间任务上遇到问题 当我完成处理程序以检查连接并在两个单独的线程上更新UI时,它可以工作。但我想定期更新网络连接。也许每5秒执行一次。我使用Timer.schedule来做到这一点。但申请失败了。 我不知道计时器是否不能进入UI线程。

另外,我不知道是否有更好的方法来完成这样的多任务。我很想知道是否有另一种方法可以做到,比如AsyncTask,Looper。谢谢

公共类ViewPostTest扩展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);


}

}

0 个答案:

没有答案