AndroidManifest.xml
<receiver android:name=".AccountEventReceiver" android:enabled="true" android:exported="false"> <intent-filter> <action android:name="com.feinno.ui.account.EVENT" /> </intent-filter> </receiver>
public static final String ACTION_ACCOUNT_EVENT = "com.feinno.ui.account.EVENT"; public static final String EXTRA_KEY_EVENT = "extra.event"; public static final String EXTRA_KEY_MSG = "extra.msg"; public static final String EXTRA_KEY_BUNDLE = "extra.bundle"; public static final String EVENT_KICKOFF = "event.kickoff"; // 被踢离线 public static final String EVENT_LOGOFF = "event.logoff"; // 登出 public static final String EVENT_EXIT = "event.exit"; // 退出 public static final String EVENT_LOGON = "event.logon"; // 登录 public static final String EVENT_RESET_PWD = "event.reset.pwd"; // 重置密码 public static final String EVENT_UNBAND_DEVICE = "event.unband.device"; // 解绑设备 public static final String EVENT_START_WEBVIEW = "event.start.webview"; // public static final String EVENT_RE_LOGIN = "event.re.login"; // 重新登录 public static final String EVENT_TIME_OUT = "event.re.time.out"; // 重新超时 public static final String EVENT_TIME_OUT_H5 = "event.re.time.out.h5"; // 首页h5新token超时 public static final String EVENT_SHARE_TO_LOGIN = "event.share.to.login"; // 分享文件去登录
Intent n = new Intent(com.feinnoui.library.utils.Const.ACTION_ACCOUNT_EVENT); n.putExtra(com.feinnoui.library.utils.Const.EXTRA_KEY_EVENT, com.feinnoui.library.utils.Const.EVENT_TIME_OUT_H5); n.setPackage(GlobalConfig.packageName);//包名 getActivity().sendBroadcast(n); getActivity().finish();
public class AccountEventReceiver extends BroadcastReceiver { public AccountEventReceiver() { } @Override public void onReceive(Context context, Intent intent) { String event = intent.getStringExtra(Const.EXTRA_KEY_EVENT); switch (event) { case Const.EVENT_KICKOFF: { ShortcutBadger.removeCount(context); String msg = intent.getStringExtra(Const.EXTRA_KEY_MSG); Toast.makeText(context, msg, Toast.LENGTH_LONG) .show(); Intent n = new Intent(); n.setClass(context, UassLoginActivity.class); n.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Bundle bundle = new Bundle(); bundle.putString("countryCode", "+86"); bundle.putString("phoneNum", SharedPreferenceManager.getUserMobile()); n.putExtras(bundle); context.startActivity(n); } break; case Const.EVENT_LOGOFF: { ShortcutBadger.removeCount(context); SharedPreferenceManager.saveString(context, GlobalConfig.KEY_ACCESS_TOKEN, ""); Intent n = new Intent(); n.setClass(context, UassLoginActivity.class); n.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Bundle bundle = new Bundle(); // bundle.putString("countryCode", "+86"); // bundle.putString("phoneNum", SharedPreferenceManager.getUserMobile()); // n.putExtras(bundle); context.startActivity(n); } break; case Const.EVENT_EXIT: { ShortcutBadger.removeCount(context); } break; case Const.EVENT_RESET_PWD: { Bundle bundle = intent.getBundleExtra(Const.EXTRA_KEY_BUNDLE); Intent n = new Intent(context, ResetActivity.class); n.putExtras(bundle); n.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(n); } break; case Const.EVENT_UNBAND_DEVICE: { // DeviceUtil.unbandDevice(context); } break; case Const.EVENT_RE_LOGIN: { Intent n = new Intent(context, LoginIMService.class); context.startService(n); } break; case Const.EVENT_TIME_OUT: { Intent n = new Intent(); String Trace_Id = SharedPreferenceManager.getString(context, GlobalConfig.KEY_TRADE_ID, ""); if (TextUtils.isEmpty(Trace_Id)) { SharedPreferenceManager.saveString(context, GlobalConfig.KEY_ACCESS_TOKEN, ""); n.setClass(context, UassLoginActivity.class); } else { n.setClass(context, UserInfoResultActivity.class); } n.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(n); } break; case Const.EVENT_TIME_OUT_H5: {//过时被踢出线 Intent n = new Intent(); SharedPreferenceManager.saveString(context, GlobalConfig.KEY_ACCESS_TOKEN, ""); SharedPreferenceManager.saveString(context, GlobalConfig.KEY_ACCESS_TOKEN_H5, ""); n.setClass(context, UassLoginActivity.class); n.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(n); } break; case Const.EVENT_SHARE_TO_LOGIN: { Intent n = new Intent(); n.setClass(context, UassLoginActivity.class); n.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(n); } break; } } }