解决方案 »

  1.   

    这样写是否正确,谢谢各位大师
    //每个间隔需要运行的任务
    class MyTask extends java.util.TimerTask
    {
    @Override
        public void run()
        {
            while(true)
            {
             if(ComCommunication.CheckReceiveData() == true)
             {
             if(ComCommunication.ReceiveData(13) == true)
             {
             bReceiveData = ComCommunication.ReceiveData; //接收到的数据进行处理
             iDeviceStatus = CheckDeviceStatus(bReceiveData);
             Handler handler = new Handler();
             handler.post(RefreshDeviceStatus);
             }
             else
             {
             Log.i("接收数据", "接收数据错误");
             continue;
             }
             }
             else
             {
             Log.i("接收数据", "未接收到有效数据");
             }
            }
        }
    }


    Runnable RefreshDeviceStatus = new Runnable()
    {
            public void run() 
            {  
                // TODO Auto-generated method stub  
         alImageItem.clear();
        
         for(int i = 0; i < iDeviceStatus.length; i++)
         {
         HashMap<String, Object> map = new HashMap<String, Object>();
         map.put("ImageItem", R.drawable.device_running_failure);
        
         if(i < 16)
         {
         if(iDeviceStatus[i] == 1)
         {
         map.put("ImageItem", R.drawable.device_running_failure);
         }
         else
         {
         map.put("ImageItem", R.drawable.device_running_normal);
         }
         }
         else
         {
         if(iDeviceStatus[i] == 1)
         {
         map.put("ImageItem", R.drawable.device_running_failure);
         }
         else
         {
         map.put("ImageItem", R.drawable.station_connection_normal);
         }
         }
        
         map.put("TextItem", sDeviceList[i]);
         alImageItem.add(map);
         }  
         saImageItems.notifyDataSetChanged();
            }
    };  
      

  2.   

    handler是写在oncreate里面的,你在子线程里面不能改变UI线程的视图,所以要在子线程里面handler.sendEmptyMessage();把改变UI的事情交给handler去做, handler重写handleMessage()方法,即handler接收到message后就会触发这个方法,你要改变UI就在这里面实现。
      

  3.   

    还用谢 Runnable么, handler是在oncreate里面生命么?   sendEmptyMessage的参数是什么意思?