BackPageReceiver.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.edufound.reader.receiver;
  2. import android.content.BroadcastReceiver;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.content.IntentFilter;
  6. import com.orhanobut.logger.Logger;
  7. /**
  8. * 特定情况下页面返回上一个页面需要修改参数乱七八糟的
  9. */
  10. public class BackPageReceiver extends BroadcastReceiver {
  11. /**
  12. * 评论,他人页面返回回来要刷新单独的videoitem来修改UI(是否关注和评论数)
  13. */
  14. public static final String BACK_HOME_REF_VIDEO_ITEM = "com.edufound.reader.back.home.ref.video.item";
  15. /**
  16. * 从小红花界面/个人信息修改界面回来刷新用户信息
  17. */
  18. public static final String BACK_HOME_REF_USER_INFO = "com.edufound.reader.back.home.ref.user.info";
  19. /**
  20. * 通知删除item
  21. * */
  22. public static final String BACK_HOME_REMOVE_VIDEO_ITEM="com.edufound.reader.back.home.remove.video.item";
  23. private static boolean isRegister = false;
  24. private static onBackPage mBackListener;
  25. private static class InstanceHolder {
  26. private static final BackPageReceiver INSTANCE = new BackPageReceiver();
  27. }
  28. @Override
  29. public void onReceive(Context context, Intent intent) {
  30. mBackListener.pageBack(intent);
  31. }
  32. public static void registerReceiver(Context context, String action) {
  33. if(action.equals(BACK_HOME_REMOVE_VIDEO_ITEM)){
  34. Logger.e("注册删除广播");
  35. }
  36. IntentFilter intentFilter = new IntentFilter(action);
  37. context.registerReceiver(BackPageReceiver.InstanceHolder.INSTANCE, intentFilter);
  38. isRegister = true;
  39. }
  40. public static void registerBackPageReceiverListener(onBackPage listener) {
  41. mBackListener = listener;
  42. }
  43. public static void unRegisterReceiver(Context context) {
  44. if (isRegister) {
  45. context.unregisterReceiver(BackPageReceiver.InstanceHolder.INSTANCE);
  46. isRegister = false;
  47. }
  48. }
  49. public interface onBackPage {
  50. void pageBack(Intent intent);
  51. }
  52. }