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; }