timer

public abstract class BaseActivity extends Activity implements Handler.Callback
{

private Timer            timerCheckNetWork;

 public BaseActivity()
    {
        if (null == handler)
        {
            Log.i("BaseActivity", "handler");
            handler = new Handler(this);
        }

        if (null == timerCheckNetWork)
        {
            timerCheckNetWork = new Timer();
        }
        timerCheckNetWork.schedule(taskCheckNetWorkSession, 1000, 1000);
    }

 

    TimerTask taskCheckNetWorkSession = new TimerTask()
                                      {
                                          public void run()
                                          {
                                              // ToastUtil.showAtCenterLong(activity,
                                              // "检测网络中....");
                                              if (!NetUtil.checkNetWorkStatus(Config.getCurrentActivity()))
                                              {
                                                  if (Config.getSocketSession().isOpened())
                                                  {
                                                      Message message = handler.obtainMessage(MessageWhat.NETWORK_CLOSED);
                                                      handler.sendMessage(message);
                                                      Config.getSocketSession().close();
                                                  }
                                              }
                                              else
                                              {
                                                  if (!Config.getSocketSession().isOpened())
                                                  {
                                                      if (Config.getUserID() > 0)
                                                      {
                                                          Message message = handler.obtainMessage(MessageWhat.NETWORK_OPENED);
                                                          handler.sendMessage(message);
                                                      }
                                                  }

                                              }
                                          }
                                      };

 

 public boolean handleMessage(Message msg)
    {
        String result = "";
        switch (msg.what)
        {
            case MessageWhat.NETWORK_OPENED:
                if (Config.getUserID() > 0)
                {
                    handler = new Handler(Config.getCurrentActivity());
                    Log.i("GroupChatActivity", "taskCheckNetWorkSessionOpening");
                    Config.setSocketSession(null);
                    ((ClientAdapter) Config.getSocketSession().getEventAdapter()).setHandler(handler);
                    Config.getSocketSession().setIP(Config.getIp());
                    Config.getSocketSession().setPort(Config.getPort());
                    Config.getSocketSession().open();
                }
                break;
            case MessageWhat.NETWORK_CLOSED:
                Log.i("taskCheckNetWorkSessionClose", "taskCheckNetWorkSessionCloseing");
                ToastUtil.showLong(this, "网络太不给力,请设置网络!");
                break;

        }
        return true;
    }

posted @ 2012-08-20 09:44  yangann  阅读(179)  评论(0编辑  收藏  举报