public void onReceive(Context context, Intent intent) {
    Log.e("auth failure receiver received");

    if (sIsHandling || !PrefUtil.getInstance(context).isLogined()) {
      return;
    }
    sIsHandling = true;

    PrefUtil.getInstance(context).logoutAccount();
    ManageAccountsActivity.deleteDatasInDB(context);
    Database database = new Database(context);
    database.close();
    // 变换Database,Connect2的标志位(用户判断是否切换了用户)
    Database.sFlagIndex++;
    Connect2.sFlagIndex++;

    // auth failure, don't need to logout.
    //        WowTalkWebServerIF mWeb = WowTalkWebServerIF.getInstance(context);
    //        mWeb.fLogout();
    WowTalkVoipIF.getInstance(context).fStopWowTalkService();
    Intent loginIntent = new Intent(context, LoginActivity.class);
    // android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity
    // context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
    loginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    loginIntent.putExtra(
        LoginActivity.EXTRA_PROMPT, context.getString(R.string.account_web_api_auth_failure));
    context.startActivity(loginIntent);

    if (null != StartActivity.instance()) {
      StartActivity.instance().finish();
    }
    sIsHandling = false;
  }