按书上写了一个 根据模拟时钟设置数字时钟的代码
现在我想一秒钟更新一次,部分代码如下:
   mHandler = new Handler()
        {
         public void handleMessage(Message msg )
         {
         switch(msg.what)
         {
         case MainActivity.CLOCK_FLASH:
         mTextView.setText(mHour + ":" + mMin + ":" + mSec );
         break;
        
         default:
         break;
         }
        
         super.handleMessage(msg);
         }
        
        }; class MyThread extends Thread
    {
     public void run()
     {
     super.run();
    
     try
     {
        Message msg = new Message();
     msg.what = MainActivity.CLOCK_FLASH;     while(true)
     {
     long time = System.currentTimeMillis();
     Calendar mCalendar = Calendar.getInstance();
     mHour = mCalendar.get(Calendar.HOUR);
     mMin = mCalendar.get(Calendar.MINUTE);
     mSec = mCalendar.get(Calendar.SECOND);
    
     Thread.sleep(1000);
    
     MainActivity.this.mHandler.sendMessage(msg);
    
     }
    
     }
     catch(Exception e)
     {
     e.printStackTrace();
     }
     }
    }以上的代码运行会挂掉,错误信息是 This message is already in use
如果我将     
Message msg = new Message();
msg.what = MainActivity.CLOCK_FLASH;
这两句代码放在while(true)内的话是没有问题,但是是否因为一直在new而导致内存被迅速“吃掉”(虽然我知道系统自己会回收的)如果我想把以上的两句代码放在原处,那我应该加一些什么代码去确保执行正确呢?