/** @return 退出应用操作 */
  public void exitApp() {
    try {
      log.debug("exit app and disconnect xmpp..");
      hasLogined = false;
      notificationService.disconnect(getChatManager());
    } catch (Exception e) {
      log.error("disconnect xmpp error!", e);
    }
    new AsyncTask<String, Integer, String>() {

      @Override
      protected String doInBackground(String... params) {
        MucManager.getInstanse(Application.this).offLine();
        return null;
      }
    }.execute();

    ThreadPlatformUtils.shutdownAllTask();
    IMModelManager.instance().clear();
    boolean outline = Preferences.getOutLine(Application.sharePref);
    if (!outline) {
      CubeApplication application = getCubeApplication();
      application.save(application);
    }
    LoginModel.instance().clear();
    activityManager.popAllActivity();
  }
  /** 初始化配置 */
  public void onCreate() {
    super.onCreate();
    initConfig();
    initStores();
    initServices();
    initHandlers();
    initPosts();

    httpClient = createHttpClient();
    // 初始化自定义Activity管理器
    activityManager = ActivityManager.getScreenManager();
    CrashReport crashReport = new CrashReport();
    crashReport.start(this);

    // 初始化图片管理器
    final int memClass =
        ((android.app.ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
    // Use 1/8th of the available memory for this memory cache.
    final int cacheSize = 1024 * 1024 * memClass / 8;
    AsyncImageManager.buildInstance(new LruImageCache(cacheSize));

    // 效能监控启动定时器代码

    mHandler.removeCallbacks(mUpdateTimeTask);
    mHandler.postDelayed(mUpdateTimeTask, 60000);
    int days = Preferences.getDayTime(sharePref);
    FileCopeTool.scanFilesAndDeleteAtpath(days);
  }
  /** 用户注销 */
  public void logOff() {
    try {
      log.debug("exit app and disconnect xmpp..");
      hasLogined = false;
      notificationService.disconnect(getChatManager());
    } catch (Exception e) {
      log.error("disconnect xmpp error!", e);
    }
    MucManager.getInstanse(this).offLine();
    showTopWindow(a);
    ThreadPlatformUtils.shutdownAllTask();
    Intent in = new Intent(BroadcastConstans.CANCEELDIOLOG);
    sendBroadcast(in);
    IMModelManager.instance().clear();

    boolean outline = Preferences.getOutLine(Application.sharePref);
    if (!outline) {
      CubeApplication application = getCubeApplication();
      application.save(application);
    }
    LoginModel.instance().clear();
    Intent i = null;
    if (PadUtils.isPad(this)) {
      i = new Intent();
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      i.setClass(this, FacadeActivity.class);
      i.putExtra("direction", 1);
      i.putExtra("type", "web");
      i.putExtra("isPad", true);
      i.putExtra("value", "file:///android_asset/www/pad/login.html");
    } else {

      // i = new Intent();
      // i.setClass(this, LoginActivity.class);
      // i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      // i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      i = new Intent();
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      i.setClass(this, FacadeActivity.class);
      i.putExtra("value", URL.PHONE_LOGIN_URL);
      i.putExtra("isPad", false);
    }
    activityManager.popAllActivity();
    // activityManager.popAllActivityExceptOne(FacadeActivity.class);
    startActivity(i);
  }