hanjing пре 7 година
родитељ
комит
79858a3d01
42 измењених фајлова са 299 додато и 343 уклоњено
  1. 1 0
      app/src/main/AndroidManifest.xml
  2. 0 2
      app/src/main/java/com/kfzs/duanduan/fragment/FgtBorrowPlay.java
  3. 1 2
      app/src/main/java/com/kfzs/duanduan/utils/ApkUtils.java
  4. 2 4
      app/src/main/java/com/kfzs/duanduan/view/DialogStorageLow.java
  5. 24 19
      app/src/main/java/com/sheep/gamegroup/model/util/SheepSubscriber.java
  6. 39 32
      app/src/main/java/com/sheep/gamegroup/usage/AppUsageManager.java
  7. 0 88
      app/src/main/java/com/sheep/gamegroup/util/ActivityManager.java
  8. 8 12
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  9. 5 1
      app/src/main/java/com/sheep/gamegroup/util/DetailTagHandler.java
  10. 60 68
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  11. 3 1
      app/src/main/java/com/sheep/gamegroup/util/MediaMetadataRetrieverUtil.java
  12. 1 1
      app/src/main/java/com/sheep/gamegroup/util/TagListUtil.java
  13. 8 7
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  14. 14 14
      app/src/main/java/com/sheep/gamegroup/util/UMConfigUtils.java
  15. 1 2
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  16. 60 30
      app/src/main/java/com/sheep/gamegroup/util/WebViewJs.java
  17. 1 1
      app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java
  18. 2 3
      app/src/main/java/com/sheep/gamegroup/util/viewHelper/UserCommentHelper.java
  19. 1 2
      app/src/main/java/com/sheep/gamegroup/util/viewHelper/WebViewVideoHelper.java
  20. 2 2
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCommentGameApp.java
  21. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java
  22. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActXianWanWeb.java
  23. 9 0
      app/src/main/java/com/sheep/gamegroup/view/activity/WithdrawalAct.java
  24. 6 5
      app/src/main/java/com/sheep/gamegroup/view/activity/WithdrawalResultAct.java
  25. 2 3
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpArticleComment.java
  26. 4 5
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppActivityRecommend.java
  27. 2 3
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppComment.java
  28. 1 2
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppGiftBag.java
  29. 2 2
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserCenterModule.java
  30. 1 2
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserCommentReply.java
  31. 1 2
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserFocusLogList.java
  32. 4 4
      app/src/main/java/com/sheep/gamegroup/view/dialog/DialogSuccessUtil.java
  33. 1 1
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtArticleComment.java
  34. 1 3
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtExchangeCMCC.java
  35. 1 2
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGameFocusList.java
  36. 2 3
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGcGameAppWelfare.java
  37. 1 1
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSearchAppOrTask.java
  38. 3 1
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSmallSheep.java
  39. 1 1
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtUserCommentDetail.java
  40. 2 2
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtVideoComment.java
  41. 18 6
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  42. 2 2
      app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -220,6 +220,7 @@
         <activity
             android:name="com.sheep.gamegroup.view.activity.WithdrawalAct"
             android:theme="@style/AppActionTheme"
+            android:launchMode="singleTask"
             android:screenOrientation="portrait" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.WithdrawalResultAct"

+ 0 - 2
app/src/main/java/com/kfzs/duanduan/fragment/FgtBorrowPlay.java

@@ -12,7 +12,6 @@
 //import com.kfzs.duanduan.bean.YinkerData;
 //import com.sheep.gamegroup.model.entity.BaseMessage;
 //import com.sheep.gamegroup.model.util.SheepSubscriber;
-//import com.sheep.gamegroup.util.ActivityManager;
 //import com.sheep.gamegroup.util.Jump2View;
 //import com.sheep.gamegroup.view.activity.ActGuideDeblocked;
 //import com.sheep.jiuyan.samllsheep.R;
@@ -44,7 +43,6 @@
 //                if(unbind_phone) {
 //                } else if(userRecord == null){
 //                    SpUtils.login(SheepApp.getInstance(),"");
-//                    ActivityManager.getInstance().finishAllActivity();
 //                    Jump2View.getInstance().goLoginView(SheepApp.getInstance(), "");
 //                } else if(has_borrow){
 //                    repay();

+ 1 - 2
app/src/main/java/com/kfzs/duanduan/utils/ApkUtils.java

@@ -16,7 +16,6 @@ import android.view.View;
 import com.sheep.gamegroup.absBase.AbsObserver;
 import com.sheep.gamegroup.model.entity.ApkFileInfo;
 import com.sheep.gamegroup.model.entity.DialogConfig;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.DataKey;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -149,7 +148,7 @@ public class ApkUtils {
                             PackageUtil.installApk(context, item.getPath());
                             DataUtil.putAsString(DataKey.KEY_INSTALL_APK_PACKAGE_NAME, item.getPackageName());
                         } else {//签名不同,则提示卸载
-                            ViewUtil.showMsgDialog(ActivityManager.getInstance().currentActivity(), new DialogConfig()
+                            ViewUtil.showMsgDialog(SheepApp.getInstance(), new DialogConfig()
                                     .setTitle("提示").setMsg("需要卸载当前应用才能继续安装,是否继续").setBtnLeftText("不用了")
                                     .setBtnRightText("继续").setBtnRightOnClickListener(new View.OnClickListener() {
                                         @Override

+ 2 - 4
app/src/main/java/com/kfzs/duanduan/view/DialogStorageLow.java

@@ -9,7 +9,6 @@ import android.text.TextUtils;
 import android.view.View;
 
 import com.sheep.gamegroup.model.entity.DialogConfig;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
@@ -21,14 +20,13 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 public class DialogStorageLow {
 
     public static AlertDialog showDialog(String msgMore) {
-        final Activity activity = ActivityManager.getInstance().currentActivity();
-        return ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("温馨提示").setMsgMore("存储空间不足\n请释放一些储存空间,并重新尝试安装!" + (TextUtils.isEmpty(msgMore) ? "" : ("\n"+msgMore)))
+        return ViewUtil.showMsgDialog(SheepApp.getInstance(), new DialogConfig().setTitle("温馨提示").setMsgMore("存储空间不足\n请释放一些储存空间,并重新尝试安装!" + (TextUtils.isEmpty(msgMore) ? "" : ("\n"+msgMore)))
             .setBtnRightText("取消").setBtnLeftText("管理应用").setBtnLeftOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         Intent intent = new Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
                         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                        activity.startActivity(intent);
+                        SheepApp.getInstance().startActivity(intent);
                     }
                 }));
     }

+ 24 - 19
app/src/main/java/com/sheep/gamegroup/model/util/SheepSubscriber.java

@@ -8,7 +8,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.sheep.gamegroup.model.api.BaseMessageConverter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.module.login.LoginAct;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.NetUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
@@ -36,7 +35,9 @@ public abstract class SheepSubscriber<T> implements Observer<T> {
     @Override
     public void onSubscribe(Disposable d) {
         if (!NetUtil.isConnected(context)) {
-            ActivityManager.getInstance().currentActivity().runOnUiThread(() -> G.shortToast("当前网络不可用,请检查网络情况"));
+            if (SheepApp.getInstance().getCurrentActivity() != null) {
+                SheepApp.getInstance().getCurrentActivity().runOnUiThread(() -> G.shortToast("当前网络不可用,请检查网络情况"));
+            }
             // 一定好主动调用下面这一句,取消本次Subscriber订阅
             if (!d.isDisposed()) {
                 d.dispose();
@@ -47,54 +48,58 @@ public abstract class SheepSubscriber<T> implements Observer<T> {
 
     @Override
     public void onError(Throwable e) {
-        try{
-            if(e instanceof Exception){
+        try {
+            if (e instanceof Exception) {
                 //访问获得对应的Exception
                 ExceptionHandle.ResponeThrowable throwable = ExceptionHandle.handleException(e);
 
                 BaseMessage baseMessage = null;
-                if(throwable.message.startsWith("{")){//json
+                if (throwable.message.startsWith("{")) {//json
                     baseMessage = JSONObject.parseObject(throwable.message, BaseMessage.class);
-                }else if(ViewUtil.isH5Content(throwable.message)){//html error
-                }else {//尝试解密
+                } else if (ViewUtil.isH5Content(throwable.message)) {//html error
+                } else {//尝试解密
                     try {
                         baseMessage = JSONObject.parseObject(BaseMessageConverter.decrypt(throwable.message), BaseMessage.class);
                     } catch (Exception ignore) {
                     }
                 }
-                if(baseMessage == null){
+                if (baseMessage == null) {
                     baseMessage = new BaseMessage();
                     baseMessage.setMsg(throwable.message);
                 }
                 //token 过期
-                if(throwable.code == 401){
-                    Activity curAct = ActivityManager.getInstance().currentActivity();
-                    if(curAct instanceof LoginAct || UMConfigUtils.isNotNeedAct(curAct)){//本身就是登录界面 或者可以不用登录就存在的界面,如:支付界面
+                if (throwable.code == 401) {
+                    Activity curAct = SheepApp.getInstance().getCurrentActivity();
+                    if (curAct != null) {
+                        if (curAct instanceof LoginAct || UMConfigUtils.isNotNeedAct(curAct)) {//本身就是登录界面 或者可以不用登录就存在的界面,如:支付界面
+                        } else {
+                            SpUtils.saveToken(SheepApp.getInstance(), "");
+                            Jump2View.getInstance().gotoLoginAgain(baseMessage.getMsg());
+                            return;
+                        }
                     } else {
-                        SpUtils.saveToken(SheepApp.getInstance(), "");
-                        Jump2View.getInstance().gotoLoginAgain(baseMessage.getMsg());
-                        return;
+
                     }
                 }
                 //未绑定手机号
-                if(throwable.code == 302 && baseMessage.getCode() == 30001){
+                if (throwable.code == 302 && baseMessage.getCode() == 30001) {
                     Jump2View.getInstance().goBindPhone(SheepApp.getInstance(), baseMessage.getCode());
                     return;
-                }else if(baseMessage.getCode() == 1002){
+                } else if (baseMessage.getCode() == 1002) {
                     Jump2View.getInstance().gotoLoginAgain();
                 }
 
-                if(baseMessage.getCode() == 0)
+                if (baseMessage.getCode() == 0)
                     baseMessage.setCode(throwable.code);
 //                LogUtil.println("sheepApi", "onError", e.getMessage(), throwable.message, baseMessage);
                 onError(baseMessage);
-            }else {
+            } else {
                 BaseMessage baseMessage = new BaseMessage();
                 baseMessage.setMsg(e.getMessage());
                 baseMessage.setCode(ExceptionHandle.ERROR.UNKNOWN);
                 onError(baseMessage);
             }
-        }catch (Exception er){
+        } catch (Exception er) {
             BaseMessage baseMessage = new BaseMessage();
             baseMessage.setMsg(er.getMessage());
             baseMessage.setCode(ExceptionHandle.ERROR.UNKNOWN);

+ 39 - 32
app/src/main/java/com/sheep/gamegroup/usage/AppUsageManager.java

@@ -15,7 +15,6 @@ import android.view.View;
 import com.sheep.gamegroup.model.entity.AppUsage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
@@ -39,10 +38,11 @@ public class AppUsageManager {
 
     private static AppUsageManager instance = new AppUsageManager();
 
-    private AppUsageManager(){
+    private AppUsageManager() {
     }
-    public static AppUsageManager getInstance(){
-        if (instance == null){
+
+    public static AppUsageManager getInstance() {
+        if (instance == null) {
             instance = new AppUsageManager();
         }
         return instance;
@@ -53,13 +53,13 @@ public class AppUsageManager {
      *
      * @return
      */
-    public  boolean needOpenLookAppUsageStatsPermission(boolean isSaveData){
-        if(android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){   // 如果大于等于5.1 再做判断
+    public boolean needOpenLookAppUsageStatsPermission(boolean isSaveData) {
+        if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {   // 如果大于等于5.1 再做判断
             long time = System.currentTimeMillis();
-            UsageStatsManager usageStatsManager=(UsageStatsManager)SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);
+            UsageStatsManager usageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);
             List<UsageStats> queryUsageStats = usageStatsManager != null ? usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 0, time) : null;
             boolean isEmpty = ListUtil.isEmpty(queryUsageStats);
-            if(!isEmpty && isSaveData){
+            if (!isEmpty && isSaveData) {
                 List<AppUsage> appUsageList = ListUtil.emptyList();
                 for (UsageStats queryUsageStat : queryUsageStats) {
                     appUsageList.add(AppUsage.getInstance(queryUsageStat));
@@ -68,46 +68,50 @@ public class AppUsageManager {
             }
             AppOpsManager appOps = (AppOpsManager) SheepApp.getInstance().getSystemService(Context.APP_OPS_SERVICE);
             int mode = -1;
-            if(appOps != null) {
+            if (appOps != null) {
                 mode = appOps.checkOpNoThrow("android:get_usage_stats", android.os.Process.myUid(), SheepApp.getInstance().getPackageName());
             }
             boolean granted = mode == AppOpsManager.MODE_ALLOWED;
             return isEmpty || !granted;
-        } else{
+        } else {
             return false;
         }
     }
 
     /**
      * 尝试打开权限对话框 5.1及以上使用
+     *
      * @param isSaveData 是否保存AppUsage数据,因为AppUsage通过系统获取的数据转化而来,而且,不切换应用时不会改变,而要实时显示时间就必须缓冲数据
      */
     public void tryOpenLookAppUsageStatsPermission(boolean isSaveData) {
         if (!needOpenLookAppUsageStatsPermission(isSaveData)) {//不需要开启
             return;
         }
-        if(AutoTaskListUtil.getInstance().isShowing()){//对话框仍在显示,就不显示 打开权限功能的对话框
+        if (AutoTaskListUtil.getInstance().isShowing()) {//对话框仍在显示,就不显示 打开权限功能的对话框
             return;
         }
         LogUtil.println("tryOpenLookAppUsageStatsPermission", "start");
         AutoTaskListUtil.getInstance().clearAlertDialog();
-        if(DataUtil.IS_LISTEN_SCREEN_SHOT){
+        if (DataUtil.IS_LISTEN_SCREEN_SHOT) {
             LogUtil.println("tryOpenLookAppUsageStatsPermission", "notEmpty");
             showAccessibilityDialog();
         } else {
-            LogUtil.println("tryOpenLookAppUsageStatsPermission","else");
+            LogUtil.println("tryOpenLookAppUsageStatsPermission", "else");
         }
-        LogUtil.println("tryOpenLookAppUsageStatsPermission","end");
+        LogUtil.println("tryOpenLookAppUsageStatsPermission", "end");
     }
+
     public void showAccessibilityDialog() {
-        AlertDialog tipToOpenAccessibilityDialog = ViewUtil.showMsgDialog(ActivityManager.getInstance().currentActivity(), new DialogConfig().setTitle("温馨提示!")
-                .setMsg("亲!系统检测到您需要手动开启小绵羊查看应用情况的权限才能继续任务!")
-                .setBtnLeftText("去开启").setBtnLeftOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        openLookAppUsageStatsPermission();
-                    }
-                }));
+        AlertDialog tipToOpenAccessibilityDialog =
+                ViewUtil.showMsgDialog(SheepApp.getInstance(),
+                        new DialogConfig().setTitle("温馨提示!")
+                                .setMsg("亲!系统检测到您需要手动开启小绵羊查看应用情况的权限才能继续任务!")
+                                .setBtnLeftText("去开启").setBtnLeftOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View view) {
+                                openLookAppUsageStatsPermission();
+                            }
+                        }));
         tipToOpenAccessibilityDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
             @Override
             public void onDismiss(DialogInterface dialogInterface) {
@@ -116,12 +120,13 @@ public class AppUsageManager {
         });
         AutoTaskListUtil.getInstance().setTipToOpenAccessibilityDialog(tipToOpenAccessibilityDialog);
     }
-    public void openLookAppUsageStatsPermission(){
-        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
+
+    public void openLookAppUsageStatsPermission() {
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
             try {
                 Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                ActivityManager.getInstance().currentActivity().startActivity(intent);
+                SheepApp.getInstance().startActivity(intent);
             } catch (Exception e) {
                 G.showToast("请自行在设置中的“有权查看使用情况的应用”界面中开启小绵羊查看应用使用情况的权限");
                 e.printStackTrace();
@@ -130,15 +135,15 @@ public class AppUsageManager {
     }
 
     public void println() {
-        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
             UsageStatsManager mUsageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);//usagestats
             long time = System.currentTimeMillis();
-            if(mUsageStatsManager != null) {
+            if (mUsageStatsManager != null) {
                 List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 1_514_736_000_000L, time);
 
                 if (usageStatsList != null && !usageStatsList.isEmpty()) {
                     for (UsageStats usageStats : usageStatsList) {
-                        if (usageStats != null ) {
+                        if (usageStats != null) {
                             LogUtil.println("AppUsageManager", usageStats.getPackageName());
                         }
                     }
@@ -151,7 +156,7 @@ public class AppUsageManager {
      * 获取应用最后使用时间
      * 24*60*60*1000
      */
-    public long getAppLastUseTime(String packageName, long intervalTime){
+    public long getAppLastUseTime(String packageName, long intervalTime) {
         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
             Calendar calendar = Calendar.getInstance();
             calendar.setTime(new Date());
@@ -176,16 +181,18 @@ public class AppUsageManager {
 
     //未开启查看应用使用情况的权限
     public static final long NOT_OPEN_USAGE_STATS = -1L;
+
     /**
      * 获取应用从2018-01-01 0:0:0到现在,在前台运行的时长
+     *
      * @param packageName
      * @return
      */
     public long getTotalTimeInForeground(String packageName) {
-        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
             UsageStatsManager mUsageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);
             long time = System.currentTimeMillis();
-            if(mUsageStatsManager != null) {
+            if (mUsageStatsManager != null) {
                 List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 1_514_736_000_000L, time);//1_514_736_000_000L 对应 2018-01-01 0:0:0
 
                 if (usageStatsList != null && !usageStatsList.isEmpty()) {
@@ -196,7 +203,7 @@ public class AppUsageManager {
                         }
                     }
                     //尝试修复重新第二天无法完成自动时长任务的bug
-                    if(!list.isEmpty()){
+                    if (!list.isEmpty()) {
                         long totalTimeInForeground = 0;
                         for (UsageStats usageStats : list) {
                             totalTimeInForeground += usageStats.getTotalTimeInForeground();

+ 0 - 88
app/src/main/java/com/sheep/gamegroup/util/ActivityManager.java

@@ -1,88 +0,0 @@
-package com.sheep.gamegroup.util;
-
-import android.app.Activity;
-
-import java.util.Stack;
-
-/**
- * Created by ljy on 2018/3/12.
- */
-
-public class ActivityManager {
-    /**
-     * activity的Stack
-     */
-    private static Stack<Activity> activityStack = new Stack<>();
-    private static ActivityManager activityManager;
-
-    public static ActivityManager getInstance() {
-        if (activityManager == null)
-            activityManager = new ActivityManager();
-        return activityManager;
-    }
-
-    /**
-     * 将activity移除stack
-     */
-    public void popActivity(Activity activity) {
-        if (activity != null) {
-            activityStack.remove(activity);
-        }
-    }
-
-    /**
-     * 结束制定activity
-     */
-    public void endActivity(Activity activity) {
-        if (activity != null) {
-            activityStack.remove(activity);
-            activity.finish();
-        }
-    }
-
-    /**
-     * 结束制定activity
-     */
-    public void endActivity(Class<? extends Activity> cls) {
-        try {
-            for (Activity activity : activityStack) {
-                if (activity.getClass().equals(cls)) {
-                    endActivity(activity);
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 活的当前的activity(即最上层)
-     */
-    public Activity currentActivity() {
-        Activity activity = null;
-        if (!activityStack.empty()) {
-            activity = activityStack.lastElement();
-        }
-        return activity;
-    }
-
-    /**
-     * 讲activity 推入栈内
-     */
-    public void pushActivity(Activity activity) {
-        if (activityStack == null) {
-            activityStack = new Stack<>();
-        }
-        activityStack.add(activity);
-    }
-
-    /**
-     * 结束所有activity
-     */
-//    public void finishAllActivity() {
-//        while (!activityStack.empty()) {
-//            Activity activity = currentActivity();
-//            endActivity(activity);
-//        }
-//    }
-}

+ 8 - 12
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -1000,11 +1000,10 @@ public class CommonUtil {
      *
      * @param payInfo
      */
-    public void alipay(final String payInfo, final boolean b, Observer<String> observer) {
+    public void alipay(Activity activity, final String payInfo, final boolean b, Observer<String> observer) {
         Observable.create(new ObservableOnSubscribe<String>() {
             @Override
             public void subscribe(ObservableEmitter<String> emitter) throws Exception {
-                Activity activity = ActivityManager.getInstance().currentActivity();
                 PayTask alipay = new PayTask(activity);
                 // 调用支付接口,获取支付结果
                 String result = alipay.pay(payInfo, b);
@@ -2015,9 +2014,6 @@ public class CommonUtil {
 
                     @Override
                     public void onResponse(File response, int id) {
-                        Activity curActivity = ActivityManager.getInstance().currentActivity();
-                        if (curActivity == null)
-                            curActivity = activity;
                         String suffix = name.substring(name.lastIndexOf(".") + 1);
                         switch (suffix) {
                             case ".png":
@@ -2025,10 +2021,10 @@ public class CommonUtil {
                                 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
                                 Uri uri = Uri.fromFile(response);
                                 intent.setData(uri);
-                                curActivity.sendBroadcast(intent); // 发送广播通知相册
+                                SheepApp.getInstance().sendBroadcast(intent); // 发送广播通知相册
                                 break;
                             case "apk":
-                                ApkUtils.installApk(curActivity, response.getAbsolutePath());
+                                ApkUtils.installApk(SheepApp.getInstance(), response.getAbsolutePath());
                                 break;
                         }
                         G.showToast("下载文件成功");
@@ -2532,12 +2528,12 @@ public class CommonUtil {
     }
 
     //使webView支持下载文件
-    public void setDownloadListener(final Activity activity, WebView webView) {
+    public void setDownloadListener(final Context context, WebView webView) {
         webView.setDownloadListener(new DownloadListener() {
             @Override
             public void onDownloadStart(final String url, String userAgent, String contentDisposition, String mimeType, long contentLength) {
                 LogUtil.println("setDownloadListener", "setDownloadListener", "onDownloadStart", url, userAgent, contentDisposition, mimeType);
-                showDownloadDialog(activity, url);
+                showDownloadDialog(context, url);
             }
         });
     }
@@ -2555,11 +2551,11 @@ public class CommonUtil {
     }
 
     //显示下载提示框
-    public void showDownloadDialog(final Activity activity, final String url) {
+    public void showDownloadDialog(final Context context, final String url) {
         final String fileName = com.sheep.gamegroup.util.FileUtil.getFileName(url);
         final File saveFile = new File(DIR, fileName);
         final boolean exists = saveFile.exists();
-        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("下载提示")
+        ViewUtil.showMsgDialog(context, new DialogConfig().setTitle("下载提示")
                 .setMsg((exists ? "是否重新下载文件:" : "是否下载文件:") + saveFile.getAbsolutePath()).setBtnLeftText("取消下载").setBtnRightText("确认下载")
                 .setBtnRightOnClickListener(new View.OnClickListener() {
                     @Override
@@ -2567,7 +2563,7 @@ public class CommonUtil {
                         if (exists && saveFile.delete()) {
                             LogUtil.println("setDownloadListener", "setDownloadListener", "onDownloadStart", url, saveFile.getAbsolutePath(), "成功删除原来的文件");
                         }
-                        DownloadService.sysDownload(activity, url, fileName, "来自小绵羊的下载:" + fileName, fileName, "系统开始下载apk");
+                        DownloadService.sysDownload(context, url, fileName, "来自小绵羊的下载:" + fileName, fileName, "系统开始下载apk");
                     }
                 }));
     }

+ 5 - 1
app/src/main/java/com/sheep/gamegroup/util/DetailTagHandler.java

@@ -8,6 +8,8 @@ import android.text.style.ClickableSpan;
 import android.text.style.ImageSpan;
 import android.view.View;
 
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
 import org.xml.sax.XMLReader;
 
 import java.util.ArrayList;
@@ -59,7 +61,9 @@ public class DetailTagHandler implements Html.TagHandler {
 
         @Override
         public void onClick(@NonNull View widget) {
-            Jump2View.getInstance().showImgList(ActivityManager.getInstance().currentActivity(), position, strings);
+            if(SheepApp.getInstance().getCurrentActivity()!=null) {
+                Jump2View.getInstance().showImgList(SheepApp.getInstance().getCurrentActivity(), position, strings);
+            }
         }
     }
 }

+ 60 - 68
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -1124,12 +1124,12 @@ public class Jump2View {
     /**
      * 显示多张图片
      *
-     * @param context
+     * @param activity
      * @param position
      * @param imgs     多张图片地址,用;分隔
      */
-    public void showImgs(Context context, int position, String imgs) {
-        showImgList(context, position, ListUtil.asList(imgs.split(";")));
+    public void showImgs(Activity activity, int position, String imgs) {
+        showImgList(activity, position, ListUtil.asList(imgs.split(";")));
     }
 
     /**
@@ -1139,8 +1139,7 @@ public class Jump2View {
      * @param position
      * @param imgList
      */
-    public void showImgList(Context context, int position, ArrayList<String> imgList) {
-        Activity activity = context instanceof Activity ? (Activity) context : ActivityManager.getInstance().currentActivity();
+    public void showImgList(Activity activity, int position, ArrayList<String> imgList) {
         if (activity != null) {
             PhotoPreview.builder()
                     .setPhotos(imgList)
@@ -1153,12 +1152,12 @@ public class Jump2View {
     /**
      * 显示多张图片
      *
-     * @param context
+     * @param activity
      * @param position
      * @param files
      */
-    public void showImgFiles(Context context, int position, File... files) {
-        showImgList(context, position, ListUtil.asList(new ListUtil.CallBack<File, String>() {
+    public void showImgFiles(Activity activity, int position, File... files) {
+        showImgList(activity, position, ListUtil.asList(new ListUtil.CallBack<File, String>() {
             @Override
             public String call(File file) {
                 return file.getAbsolutePath();
@@ -1638,13 +1637,13 @@ public class Jump2View {
     /**
      * 发现模块--游戏详情界面
      *
-     * @param activity
+     * @param context
      * @param item
      */
-    public void goFindGame(Activity activity, Article item) {
-        Intent intent = new Intent(activity, ActGcGameAppDetail.class);
+    public void goFindGame(Context context, Article item) {
+        Intent intent = new Intent(context, ActGcGameAppDetail.class);
         intent.putExtra("id", item.getApplication_id());
-        activity.startActivity(intent);
+        context.startActivity(intent);
     }
 
     /**
@@ -1674,25 +1673,25 @@ public class Jump2View {
     /**
      * 发现模块--资讯详情界面
      *
-     * @param activity
+     * @param context
      * @param item
      */
-    public void goFindInformation(Activity activity, Article item) {
-        goFindInformation(activity, item.getTitle(), item.getId());
+    public void goFindInformation(Context context, Article item) {
+        goFindInformation(context, item.getTitle(), item.getId());
     }
 
     /**
      * 发现模块--资讯详情界面
      *
-     * @param activity
+     * @param context
      * @param title
      * @param id
      */
-    public void goFindInformation(Activity activity, String title, int id) {
-        Intent intent = new Intent(activity, ActArticleComment.class);
+    public void goFindInformation(Context context, String title, int id) {
+        Intent intent = new Intent(context, ActArticleComment.class);
         DataUtil.putObject(intent, id);
         intent.putExtra("title", title);
-        activity.startActivity(intent);
+        context.startActivity(intent);
         USER_FIND_APP_ORDER.onEvent();
     }
 
@@ -1917,27 +1916,20 @@ public class Jump2View {
     /**
      * 点击游戏标签
      */
-    public void goActPlayGameList(Activity activity, GameListTag item) {
-        Intent intent = new Intent(activity, ActPlayGameList.class);
+    public void goActPlayGameList(Context context, GameListTag item) {
+        Intent intent = new Intent(context, ActPlayGameList.class);
         DataUtil.putObject(intent, item.toGameListType());
-        activity.startActivity(intent);
+        context.startActivity(intent);
         GAME_EVERY_DAY_MORE.onEvent("title", item.getName());
     }
 
     /**
      * 游戏详情
      */
-    public void goPlayGameDetail(Activity activity, int id) {
-        if (activity == null) {
-            activity = ActivityManager.getInstance().currentActivity();
-        }
-        if (activity == null) {
-            G.showToast(R.string.coming_soon);
-            return;
-        }
-        Intent intent = new Intent(activity, ActGcGameAppDetail.class);
+    public void goPlayGameDetail(Context context, int id) {
+        Intent intent = new Intent(context, ActGcGameAppDetail.class);
         intent.putExtra("id", id);
-        activity.startActivity(intent);
+        context.startActivity(intent);
         GAME_PLAY_GAME_DETAIL.onEvent();
     }
 
@@ -2024,7 +2016,7 @@ public class Jump2View {
     }
 
     //通过查询发现打开一个发现
-    public void goFindItem(final Activity activity, int findItemId) {
+    public void goFindItem(final Context context, int findItemId) {
         SheepApp.getInstance().getNetComponent().getApiService().getFindDetail(findItemId)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
@@ -2036,7 +2028,7 @@ public class Jump2View {
                             G.showToast(R.string.error_data);
                             return;
                         }
-                        goFindItem(activity, item);
+                        goFindItem(context, item);
                     }
 
                     @Override
@@ -2047,22 +2039,22 @@ public class Jump2View {
     }
 
     //打开一个发现
-    public void goFindItem(Activity activity, Article item) {
+    public void goFindItem(Context context, Article item) {
         switch (item.getType()) {//类型 1:游戏 2:咨询 3:转跳 4:任务 5:栏目
             case 1:
-                Jump2View.getInstance().goFindGame(activity, item);
+                Jump2View.getInstance().goFindGame(context, item);
                 break;
             case 2:
-                Jump2View.getInstance().goFindInformation(activity, item);
+                Jump2View.getInstance().goFindInformation(context, item);
                 break;
             case 3:
-                openLink(activity, item);
+                openLink(context, item);
                 break;
             case 4:
-                Jump2View.getInstance().goTaskDetailView(activity, item.getRelease_task_id());
+                Jump2View.getInstance().goTaskDetailView(context, item.getRelease_task_id());
                 break;
             case 5:
-                openHomeListItem(activity, item);
+                openHomeListItem(context, item);
                 break;
         }
         FIND_ITEM.onEvent("find_id", item.getId());
@@ -2085,7 +2077,7 @@ public class Jump2View {
      *
      * @param item
      */
-    private void openHomeListItem(final Activity activity, Article item) {
+    private void openHomeListItem(final Context context, Article item) {
         SheepApp.getInstance().getNetComponent().getApiService().getHomeListItem(item.getHome_list_id())
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
@@ -2097,7 +2089,7 @@ public class Jump2View {
                             G.showToast(R.string.error_data);
                             return;
                         }
-                        CommonUtil.getInstance().goWhere(activity, homeListEntity, "发现");
+                        CommonUtil.getInstance().goWhere(context, homeListEntity, "发现");
                     }
 
                     @Override
@@ -2112,17 +2104,17 @@ public class Jump2View {
      *
      * @param item
      */
-    private void openLink(Activity activity, Article item) {
+    private void openLink(Context context, Article item) {
         if (TextUtils.isEmpty(item.getUrl())) {
             G.showToast(R.string.error_link);
             return;
         }
         switch (item.getIs_in_url()) {//是否外部链接 1:是 0:不是
             case 1:
-                Jump2View.getInstance().goWeb(activity, item.getUrl());
+                Jump2View.getInstance().goWeb(context, item.getUrl());
                 break;
             default:
-                Jump2View.getInstance().goWeb(activity, item.getUrl(), item.getTitle());
+                Jump2View.getInstance().goWeb(context, item.getUrl(), item.getTitle());
                 break;
         }
     }
@@ -2194,21 +2186,21 @@ public class Jump2View {
     /**
      * 跳转游戏评论详情界面
      *
-     * @param activity
+     * @param context
      * @param user_comment_id
      */
-    public void goActAppCommentDetail(Activity activity, int user_comment_id) {
-        activity.startActivity(DataUtil.putObject(new Intent(activity, ActUserCommentDetail.class), user_comment_id));
+    public void goActAppCommentDetail(Context context, int user_comment_id) {
+        context.startActivity(DataUtil.putObject(new Intent(context, ActUserCommentDetail.class), user_comment_id));
     }
 
     /**
      * 跳转个人游戏主页界面
      *
-     * @param activity
+     * @param context
      * @param user_id
      */
-    public void goActUserAppHome(Activity activity, int user_id) {
-        activity.startActivity(DataUtil.putObject(new Intent(activity, ActUserAppHome.class), user_id));
+    public void goActUserAppHome(Context context, int user_id) {
+        context.startActivity(DataUtil.putObject(new Intent(context, ActUserAppHome.class), user_id));
     }
 
 
@@ -2243,14 +2235,13 @@ public class Jump2View {
     /**
      * 跳转到游戏详情或者任务详情界面
      */
-    public void goTaskOrAppDetail(IHomePageSearch item) {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+    public void goTaskOrAppDetail(Context context, IHomePageSearch item) {
         switch (item.getLink_type()) {
             case IHomePageSearch.LINK_TYPE_RELEASE_TASK:
-                goTaskDetailView(activity, item.getLink_id());
+                goTaskDetailView(context, item.getLink_id());
                 break;
             case IHomePageSearch.LINK_TYPE_APPLICATIONS:
-                goPlayGameDetail(activity, item.getLink_id());
+                goPlayGameDetail(context, item.getLink_id());
                 break;
         }
     }
@@ -2262,7 +2253,7 @@ public class Jump2View {
      * @param isCache 是否缓存,方便以后播放
      */
     public void goActPlayVideo(String url, boolean isCache) {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         if (isCache) {
             HttpProxyCacheServer proxy = SheepApp.getHttpProxyCacheServer();
             url = proxy.getProxyUrl(url);
@@ -2276,16 +2267,17 @@ public class Jump2View {
      * @param item 视频对象
      */
     public void goActPlayVideoArticle(Serializable item) {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         activity.startActivity(DataUtil.putObject(new Intent(activity, ActVideoDetail.class), item));
     }
+
     /**
      * 播放视频
      *
      * @param item 视频对象
      */
     public void goActPlayVideoArticle(Serializable item, ArrayList<DiscoveryVideo> videoList) {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActVideoDetail.class);
         intent.putExtra(ArrayList.class.getSimpleName(), videoList);
         activity.startActivity(DataUtil.putObject(intent, item));
@@ -2350,7 +2342,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到我的关注界面
      */
     public void goActMyFocus() {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActMyFocus.class);
         activity.startActivity(intent);
     }
@@ -2359,7 +2351,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到足迹界面
      */
     public void goActFootPrint() {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActFootprint.class);
         activity.startActivity(intent);
     }
@@ -2368,7 +2360,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到收徒红包界面
      */
     public void goActApprenticeRedPacket() {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActApprenticeRedPacket.class);
         activity.startActivity(intent);
     }
@@ -2377,7 +2369,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到兑换商城界面
      */
     public void goActExchangeMall() {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActExchangeMall.class);
         activity.startActivity(intent);
     }
@@ -2386,7 +2378,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到每日分享界面
      */
     public void goActEveryDayShare() {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActEveryDayShare.class);
         activity.startActivity(intent);
     }
@@ -2395,7 +2387,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到娱乐抽奖界面
      */
     public void goActEntertainmentLuckDraw() {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActEntertainmentLuckDraw.class);
         activity.startActivity(intent);
     }
@@ -2404,7 +2396,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到金币中心界面
      */
     public void goActCoinCenter() {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActCoinCenter.class);
         activity.startActivity(intent);
     }
@@ -2413,7 +2405,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到发布发现内容的界面
      */
     public void gotoActPublishArticle(@ActPublishArticle.Type int type) {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActPublishArticle.class);
         activity.startActivity(DataUtil.putObject(intent, type));
     }
@@ -2422,7 +2414,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到发布发现内容的界面
      */
     public void gotoActVideoComment(int video_id) {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActVideoComment.class);
         activity.startActivity(DataUtil.putObject(intent, video_id));
     }
@@ -2431,7 +2423,7 @@ public class Jump2View {
      * 小绵羊3.4.5新增--跳转到选择视频与图片界面
      */
     public void gotoActMediaChoose(@ActPublishArticle.Type int type) {
-        Activity activity = ActivityManager.getInstance().currentActivity();
+        Activity activity = SheepApp.getInstance().getCurrentActivity();
         Intent intent = new Intent(activity, ActMediaChoose.class);
         activity.startActivity(DataUtil.putObject(intent, type));
     }

+ 3 - 1
app/src/main/java/com/sheep/gamegroup/util/MediaMetadataRetrieverUtil.java

@@ -96,7 +96,9 @@ public class MediaMetadataRetrieverUtil {
         baseQuickAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
             @Override
             public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
-                Jump2View.getInstance().showImgList(ActivityManager.getInstance().currentActivity(), position, videoPathList);
+                if (SheepApp.getInstance().getCurrentActivity() != null) {
+                    Jump2View.getInstance().showImgList(SheepApp.getInstance().getCurrentActivity(), position, videoPathList);
+                }
             }
         });
         recyclerView.setAdapter(baseQuickAdapter);

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/TagListUtil.java

@@ -36,7 +36,7 @@ public class TagListUtil {
                 viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
-                        Jump2View.getInstance().goActPlayGameList(ActivityManager.getInstance().currentActivity(), item);
+                        Jump2View.getInstance().goActPlayGameList(recyclerView.getContext(), item);
                     }
                 });
             }

+ 8 - 7
app/src/main/java/com/sheep/gamegroup/util/TestUtil.java

@@ -4,6 +4,7 @@ import android.app.Activity;
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.PackageInfo;
@@ -176,7 +177,7 @@ public class TestUtil {
                                                 }).start();
                                                 break;
                                             case "下载小绵羊":
-                                                downloadApkFromJenkins();
+                                                downloadApkFromJenkins(activity);
                                                 break;
                                             case "清理清除aCache":
                                                 DataUtil.getInstance().clearACache();
@@ -238,8 +239,8 @@ public class TestUtil {
         return BuildConfig.DEBUG || !"sheep".equals(BuildConfig.FLAVOR);
     }
 
-    public static void downloadApkFromJenkins() {
-        Jump2View.getInstance().goWeb(ActivityManager.getInstance().currentActivity(), "http://10.8.210.20:8080/jenkins/job/android_small_sheep/", "从jenkins下载小绵羊安装包");
+    public static void downloadApkFromJenkins(Context context) {
+        Jump2View.getInstance().goWeb(context, "http://10.8.210.20:8080/jenkins/job/android_small_sheep/", "从jenkins下载小绵羊安装包");
     }
 
     /**
@@ -281,7 +282,7 @@ public class TestUtil {
                                 testBitmap();
                                 break;
                             case "剪切视频":
-                                testCutVideo();
+                                testCutVideo(activity);
                                 break;
                             case "足迹":
                                 Jump2View.getInstance().goActFootPrint();
@@ -411,7 +412,7 @@ public class TestUtil {
                                 Jump2View.getInstance().goActExchangeCMCC(activity);
                                 break;
                             case "从jenkins下载小绵羊安装包":
-                                downloadApkFromJenkins();
+                                downloadApkFromJenkins(activity);
                                 break;
                             case "审核中心":
                                 Jump2View.getInstance().goAuditTastList(activity, null);
@@ -639,7 +640,7 @@ public class TestUtil {
         ViewUtil.saveImage(result, ClassFileHelper.DIR, String.valueOf(System.currentTimeMillis()) + ".png");
     }
 
-    private static void testCutVideo() {
+    private static void testCutVideo(Activity activity) {
         Observable.create(new ObservableOnSubscribe<MediaBean>() {
             @Override
             public void subscribe(ObservableEmitter<MediaBean> emitter) throws Exception {
@@ -653,7 +654,7 @@ public class TestUtil {
                 .subscribe(new AbsObserver<MediaBean>() {
                     @Override
                     public void onNext(MediaBean mediaBean) {
-                        Jump2View.getInstance().goActCutVideo(ActivityManager.getInstance().currentActivity(), Video.from(mediaBean));
+                        Jump2View.getInstance().goActCutVideo(activity, Video.from(mediaBean));
                     }
                 });
 

+ 14 - 14
app/src/main/java/com/sheep/gamegroup/util/UMConfigUtils.java

@@ -31,6 +31,7 @@ import io.reactivex.schedulers.Schedulers;
 public class UMConfigUtils {
 
     public static final String LOGIN_TYPE = "sheep_login_type";
+
     //判断act是不是不需要统计的act
     public static boolean isNotNeedAct(Activity activity) {
         return activity instanceof ActPay || activity instanceof GameCertificationActivity;
@@ -186,8 +187,7 @@ public class UMConfigUtils {
         SHARE_TO_QZONE("分享到QQ空间"),
         TASK_SAVE_QR("二维码小程序 -> 保存二维码"),
         EXCHANGE_CMCC("移动积分兑换界面"),
-        SEARCH_APP_OR_TASK("从主页进入搜索游戏或任务的搜索界面"),
-        ;
+        SEARCH_APP_OR_TASK("从主页进入搜索游戏或任务的搜索界面"),;
         private String tag;
 
         Event(String tag) {
@@ -233,7 +233,7 @@ public class UMConfigUtils {
             Event[] items = Event.values();
             for (int i = 0; i < items.length; i++) {
                 Event event = items[i];
-                if(i != 0)
+                if (i != 0)
                     stringBuilder.append("\n");
                 stringBuilder.append(event.toString());
             }
@@ -285,7 +285,7 @@ public class UMConfigUtils {
      * 登录
      */
     public static void onProfileSignIn() {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         String jsonString = LocationUtils.getInstance().getLocationJSONObject().toJSONString();
@@ -297,7 +297,7 @@ public class UMConfigUtils {
      * 登出
      */
     public static void onProfileSignOff() {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         String jsonString = LocationUtils.getInstance().getLocationJSONObject().toJSONString();
@@ -312,7 +312,7 @@ public class UMConfigUtils {
      * @param event
      */
     public static void onEvent(Event event) {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         try {
@@ -328,7 +328,7 @@ public class UMConfigUtils {
      * @param event
      */
     public static void onEvent(Event event, Map<String, String> map) {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         try {
@@ -345,7 +345,7 @@ public class UMConfigUtils {
      * @param context
      */
     public static void onPageStart(Context context) {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         String tag = context.getClass().getCanonicalName();
@@ -358,7 +358,7 @@ public class UMConfigUtils {
      * @param tag
      */
     public static void onPageStart(String tag) {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         AppStatistics.getInstance().sendDataToServer(AppStatisticsConfig.SuperType.PAGE_START, 0, tag);
@@ -370,7 +370,7 @@ public class UMConfigUtils {
      * @param context
      */
     public static void onPageEnd(Context context) {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         String tag = context.getClass().getCanonicalName();
@@ -383,7 +383,7 @@ public class UMConfigUtils {
      * @param tag
      */
     public static void onPageEnd(String tag) {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         AppStatistics.getInstance().sendDataToServer(AppStatisticsConfig.SuperType.PAGE_END, 0, tag);
@@ -393,7 +393,7 @@ public class UMConfigUtils {
      * 任务完成时间统计
      */
     public static void finishTask() {
-        if(ActivityManager.getInstance().currentActivity() instanceof ChangeTelAct){//绑定手机号界面卡,接口不能通过,调了也没用
+        if (SheepApp.getInstance().getCurrentActivity() != null && SheepApp.getInstance().getCurrentActivity() instanceof ChangeTelAct) {//绑定手机号界面卡,接口不能通过,调了也没用
             return;
         }
         AppStatistics.getInstance().sendDataToServer(AppStatisticsConfig.SuperType.TASK_FINISH, 0, "");
@@ -403,8 +403,8 @@ public class UMConfigUtils {
     /**
      * 当Fragment对用户的可见性发生了改变的时候就会回调此方法
      *
-     * @param isVisibleToUser                      true:用户能看见当前Fragment;false:用户看不见当前Fragment
-     * @param tag                                  fragment 名字
+     * @param isVisibleToUser true:用户能看见当前Fragment;false:用户看不见当前Fragment
+     * @param tag             fragment 名字
      */
     public static void onVisibilityChangedToUser(boolean isVisibleToUser, String tag) {
         if (isVisibleToUser) {

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -1101,8 +1101,7 @@ public class ViewUtil {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setFinish(isFinish).setBtnLeftText("知道了"));
     }
 
-    public static AlertDialog showMsgDialog(Context context, final DialogConfig dialogConfig) {
-        final Context mContext = context == null ? ActivityManager.getInstance().currentActivity() : context;
+    public static AlertDialog showMsgDialog(Context mContext, final DialogConfig dialogConfig) {
         String title = dialogConfig.getTitle();
         String msg = dialogConfig.getMsg();
         String msgMore = dialogConfig.getMsgMore();

+ 60 - 30
app/src/main/java/com/sheep/gamegroup/util/WebViewJs.java

@@ -1,5 +1,6 @@
 package com.sheep.gamegroup.util;
 
+import android.app.Activity;
 import android.text.TextUtils;
 import android.webkit.JavascriptInterface;
 
@@ -14,6 +15,7 @@ import com.zhy.http.okhttp.OkHttpUtils;
 import com.zhy.http.okhttp.callback.FileCallBack;
 
 import java.io.File;
+import java.lang.ref.WeakReference;
 import java.util.Locale;
 
 import okhttp3.Call;
@@ -23,14 +25,18 @@ import okhttp3.Call;
  */
 
 public class WebViewJs {
-    private int taskId;
 
-    public WebViewJs() {
+    private WeakReference<Activity> actRef;
+
+    private int taskId;
 
+    public WebViewJs(Activity activity) {
+        actRef = new WeakReference<>(activity);
     }
 
-    public WebViewJs(int taskId) {
+    public WebViewJs(Activity activity, int taskId) {
         this.taskId = taskId;
+        actRef = new WeakReference<>(activity);
     }
 
     @JavascriptInterface
@@ -45,42 +51,56 @@ public class WebViewJs {
     @JavascriptInterface
     public void downloadFile(final String url, final String name) {
         //去下载
-        CommonUtil.getInstance().showDownLoad(ActivityManager.getInstance().currentActivity(), url, name);
+        if (actRef.get() != null) {
+            CommonUtil.getInstance().showDownLoad(actRef.get(), url, name);
+        }
     }
 
     @JavascriptInterface
     public void startApp(String pkg, String cls) {
-        PackageUtil.startApp(ActivityManager.getInstance().currentActivity(), pkg);
+        if (actRef.get() != null) {
+            PackageUtil.startApp(actRef.get(), pkg);
+        }
     }
 
     @JavascriptInterface
     public void gotoLogin() {
         Jump2View.getInstance().gotoLoginAgain();
     }
+
     @JavascriptInterface
     public void gotoWeb(String url, String title) {
-        if(!TextUtils.isEmpty(url)) {
-            if (TextUtils.isEmpty(title)) {
-                Jump2View.getInstance().goWeb(ActivityManager.getInstance().currentActivity(), url);//启动浏览器h5
-            } else {
-                Jump2View.getInstance().goWeb(ActivityManager.getInstance().currentActivity(), url, title);//进入小绵羊h5界面
+        if (actRef.get() != null) {
+            if (!TextUtils.isEmpty(url)) {
+                if (TextUtils.isEmpty(title)) {
+                    Jump2View.getInstance().goWeb(actRef.get(), url);//启动浏览器h5
+                } else {
+                    Jump2View.getInstance().goWeb(actRef.get(), url, title);//进入小绵羊h5界面
+                }
             }
         }
     }
+
     @JavascriptInterface
     public void gotoRecharge() {
-        Jump2View.getInstance().goRechargeAct(ActivityManager.getInstance().currentActivity(), "内部H5");//进入充值绵羊币界面
+        if (actRef.get() != null) {
+            Jump2View.getInstance().goRechargeAct(actRef.get(), "内部H5");//进入充值绵羊币界面
+        }
     }
 
     @JavascriptInterface
-    public String getInvitationCode(){
+    public String getInvitationCode() {
         return DataUtil.getInstance().getInvitationCode();
     }
+
     @JavascriptInterface
     public String popShare(String url, String type) {
-        new ShareLinkConfig().setLink(url).setShareType(type).toShare(ActivityManager.getInstance().currentActivity());
+        if (actRef.get() != null) {
+            new ShareLinkConfig().setLink(url).setShareType(type).toShare(actRef.get());
+        }
         return "";
     }
+
     @JavascriptInterface
     public String getHeader() {
         return SpUtils.getToken(SheepApp.getInstance());
@@ -88,72 +108,82 @@ public class WebViewJs {
 
     @JavascriptInterface
     public String getWcUrl(String url) {
-        if(!TextUtils.isEmpty(url)){
-            Jump2View.getInstance().goWeb(ActivityManager.getInstance().currentActivity(), url);
+        if (!TextUtils.isEmpty(url) && actRef.get() != null) {
+            Jump2View.getInstance().goWeb(actRef.get(), url);
         }
         return "";
     }
+
     @JavascriptInterface
     public String getIMEI() {
         return DeviceUtil.getDeviceId(SheepApp.getInstance());
     }
+
     @JavascriptInterface
     public String getPhoneModel() {
         return SysAppUtil.getSystemModel();
     }
 
     @JavascriptInterface
-    public int getTaskId(){
+    public int getTaskId() {
         return taskId;
     }
 
     /**
      * 返回结果int类型 0:未安装 1:已安装
+     *
      * @return
      */
     @JavascriptInterface
-    public int CheckInstall(String packName){
-        if(TextUtils.isEmpty(packName)){
+    public int CheckInstall(String packName) {
+        if (TextUtils.isEmpty(packName)) {
             G.showToast("包名为空");
             return 0;
         }
-
-        return PackageUtil.isAppInstalled(ActivityManager.getInstance().currentActivity(), packName) ? 1 : 0;
+        if (actRef.get() != null) {
+            return PackageUtil.isAppInstalled(actRef.get(), packName) ? 1 : 0;
+        } else {
+            return 0;
+        }
     }
 
     @JavascriptInterface
-    public int OpenAPP(String packName){
-        if(TextUtils.isEmpty(packName)){
+    public int OpenAPP(String packName) {
+        if (TextUtils.isEmpty(packName)) {
             G.showToast("包名为空");
             return 0;
         }
         PackageUtil.startApp(SheepApp.getInstance(), packName);
         return 0;
     }
+
     @JavascriptInterface
-    public int InstallAPP(String packName){
+    public int InstallAPP(String packName) {
 
-        if(TextUtils.isEmpty(packName)){
+        if (TextUtils.isEmpty(packName)) {
             G.showToast("下载地址为空");
             return 0;
         }
         downLoad(packName);
         return 0;
     }
+
     @JavascriptInterface
-    public int Browser(String url){
-        if(TextUtils.isEmpty(url)){
+    public int Browser(String url) {
+        if (TextUtils.isEmpty(url)) {
             G.showToast("连接地址为空");
             return 0;
         }
-        Jump2View.getInstance().goWeb(ActivityManager.getInstance().currentActivity(), url);
+        if(actRef.get()!=null) {
+            Jump2View.getInstance().goWeb(actRef.get(), url);
+        }
         return 0;
     }
 
     /**
      * 下载地址
      */
-    private void downLoad(String url){
+    private void downLoad(String url) {
         OkHttpUtils.get().url(url).build().execute(new FileCallBack(ClassFileHelper.DIR, FileUtil.getFileName(url)) {
             @Override
             public void onError(Call call, Exception e, int id) {
@@ -162,8 +192,8 @@ public class WebViewJs {
 
             @Override
             public void onResponse(File response, int id) {
-                if(response.getAbsolutePath().endsWith(".apk")){
-                    ApkUtils.installApk(ActivityManager.getInstance().currentActivity(), response.getAbsolutePath());
+                if (response.getAbsolutePath().endsWith(".apk") && actRef.get()!=null) {
+                    ApkUtils.installApk(actRef.get(), response.getAbsolutePath());
                 }
             }
         });

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -198,7 +198,7 @@ public class KFZSJs {
 
     @JavascriptInterface
     public void alipay(String payInfo, boolean b){
-        CommonUtil.getInstance().alipay(payInfo, b, new AbsObserver<String>() {
+        CommonUtil.getInstance().alipay(activity, payInfo, b, new AbsObserver<String>() {
             @Override
             public void onNext(String result) {
                 activity.loadJs(String.format(Locale.CHINA, "onAlipayResult('%s')", result));

+ 2 - 3
app/src/main/java/com/sheep/gamegroup/util/viewHelper/UserCommentHelper.java

@@ -10,7 +10,6 @@ import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserComment;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TextViewUtil;
@@ -79,13 +78,13 @@ public class UserCommentHelper {
         user_comment_detail_user_avatar.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getUser_id());
+                Jump2View.getInstance().goActUserAppHome(rootView.getContext(), item.getUser_id());
             }
         });
         user_comment_detail_num1.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                Jump2View.getInstance().goActAppCommentDetail(ActivityManager.getInstance().currentActivity(), item.getId());
+                Jump2View.getInstance().goActAppCommentDetail(view.getContext(), item.getId());
             }
         });
         user_comment_detail_num2.setOnClickListener(new View.OnClickListener() {

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/util/viewHelper/WebViewVideoHelper.java

@@ -16,7 +16,6 @@ import android.webkit.WebView;
 import android.webkit.WebViewClient;
 import android.widget.FrameLayout;
 
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -42,7 +41,7 @@ public class WebViewVideoHelper {
         this.activity = activity;
         this.webView = webView;
         initWebView();
-        CommonUtil.getInstance().setDownloadListener(ActivityManager.getInstance().currentActivity(), webView);
+        CommonUtil.getInstance().setDownloadListener(webView.getContext(), webView);
     }
 
     public void initWebView() {

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/ActCommentGameApp.java

@@ -77,7 +77,7 @@ public class ActCommentGameApp extends BaseActivity {
             G.showToast("亲,您还没有填写你的观点呢");
             return;
         }
-        if(score < 1){
+        if (score < 1) {
             G.showToast("亲,请先打分");
             return;
         }
@@ -86,7 +86,7 @@ public class ActCommentGameApp extends BaseActivity {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         act_comment_game_app_input_comment.setText("");
-                        DialogSuccessUtil.showSuccess("发表成功", new DialogInterface.OnDismissListener() {
+                        DialogSuccessUtil.showSuccess(ActCommentGameApp.this, "发表成功", new DialogInterface.OnDismissListener() {
                             @Override
                             public void onDismiss(DialogInterface dialogInterface) {
                                 setResult(RESULT_OK);

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java

@@ -136,7 +136,7 @@ public class ActCreditCardWeb extends BaseActivity {
         webViewSettings.setDatabasePath(getApplicationContext().getCacheDir().getAbsolutePath());
 
         webViewSettings.setJavaScriptEnabled(true);
-        mWebView.addJavascriptInterface(new WebViewJs(creditCard.getRelease_id()), "kfzsjs");
+        mWebView.addJavascriptInterface(new WebViewJs(this, creditCard.getRelease_id()), "kfzsjs");
         mWebView.loadUrl(creditCard.getLoadUrl());
     }
 

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActXianWanWeb.java

@@ -148,7 +148,7 @@ public class ActXianWanWeb extends BaseActivity {
             }
         });
         webViewSettings.setJavaScriptEnabled(true);
-        mWebView.addJavascriptInterface(new WebViewJs(), "android");
+        mWebView.addJavascriptInterface(new WebViewJs(this), "android");
         mWebView.loadUrl(assemblyData());
 
         mWebView.setOnKeyListener(new View.OnKeyListener() {

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/WithdrawalAct.java

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.text.Html;
 import android.text.TextUtils;
 import android.view.View;
@@ -111,6 +112,14 @@ public class WithdrawalAct extends BaseActivity implements WithdrawalContract.Vi
     }
 
     @Override
+    public void onNewIntent(Intent intent){
+        super.onNewIntent(intent);
+        if("FINISH".equals(intent.getStringExtra("INTENT_ACTION"))) {
+            finish();
+        }
+    }
+
+    @Override
     public void initListener() {
 
     }

+ 6 - 5
app/src/main/java/com/sheep/gamegroup/view/activity/WithdrawalResultAct.java

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -10,7 +11,6 @@ import com.sheep.gamegroup.di.components.DaggerWithdrawalResultComponent;
 import com.sheep.gamegroup.di.modules.WithdrawalResultModule;
 import com.sheep.gamegroup.presenter.WithdrawalResultContract;
 import com.sheep.gamegroup.presenter.WithdrawalResultPresenter;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -77,16 +77,17 @@ public class WithdrawalResultAct extends BaseActivity implements WithdrawalResul
     public void onViewClicked(View view) {
         switch (view.getId()) {
             case R.id.withdrawal_success_sure_tv:
-                ActivityManager.getInstance().endActivity(WithdrawalAct.class);
                 finish();
                 break;
         }
     }
 
     @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        ActivityManager.getInstance().endActivity(WithdrawalAct.class);
+    public void finish() {
+        Intent intent = new Intent(activity, WithdrawalAct.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.putExtra("INTENT_ACTION", "FINISH");
+        startActivity(intent);
+        super.finish();
     }
 
 }

+ 2 - 3
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpArticleComment.java

@@ -10,7 +10,6 @@ import com.chad.library.adapter.base.BaseViewHolder;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserComment;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TextViewUtil;
@@ -68,7 +67,7 @@ public class AdpArticleComment extends BaseQuickAdapter<UserComment, BaseViewHol
                 @Override
                 public void onClick(View view) {
                     //跳转评论详情界面
-                    Jump2View.getInstance().goActAppCommentDetail(ActivityManager.getInstance().currentActivity(), item.getId());
+                    Jump2View.getInstance().goActAppCommentDetail(view.getContext(), item.getId());
                 }
             });
         }
@@ -122,7 +121,7 @@ public class AdpArticleComment extends BaseQuickAdapter<UserComment, BaseViewHol
             @Override
             public void onClick(View view) {
                 //跳转个人游戏主页界面
-                Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getUser_id());
+                Jump2View.getInstance().goActUserAppHome(view.getContext(), item.getUser_id());
             }
         });
     }

+ 4 - 5
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppActivityRecommend.java

@@ -21,11 +21,8 @@ import java.util.List;
  */
 public class AdpGcGameAppActivityRecommend extends RecyclerViewAdapter<Article> {
 
-    private Activity activity;
-
     public AdpGcGameAppActivityRecommend(Context context, List<Article> datas) {
         super(context, R.layout.item_activity_recommend, datas);
-        activity = (Activity) context;
     }
 
     @Override
@@ -33,13 +30,15 @@ public class AdpGcGameAppActivityRecommend extends RecyclerViewAdapter<Article>
         ImageView item_activity_recommend_iv = viewHolder.itemView.findViewById(R.id.item_activity_recommend_iv);
         TextView item_activity_recommend_content = viewHolder.itemView.findViewById(R.id.item_activity_recommend_content);
 
-        ViewUtil.setImage(item_activity_recommend_iv, item.getPictures(), activity.getResources().getDimensionPixelSize(R.dimen.content_padding_5));
+        ViewUtil.setImage(item_activity_recommend_iv,
+                item.getPictures(),
+                viewHolder.itemView.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding_5));
         ViewUtil.setText(item_activity_recommend_content, item.getContent());
 
         viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                Jump2View.getInstance().goFindItem(activity, item);
+                Jump2View.getInstance().goFindItem(view.getContext(), item);
             }
         });
     }

+ 2 - 3
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppComment.java

@@ -10,7 +10,6 @@ import com.chad.library.adapter.base.BaseViewHolder;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserComment;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TextViewUtil;
@@ -59,14 +58,14 @@ public class AdpGcGameAppComment extends BaseQuickAdapter<UserComment, BaseViewH
             @Override
             public void onClick(View view) {
                 //跳转游戏评论详情界面
-                Jump2View.getInstance().goActAppCommentDetail(ActivityManager.getInstance().currentActivity(), item.getId());
+                Jump2View.getInstance().goActAppCommentDetail(view.getContext(), item.getId());
             }
         });
         game_app_comment_user_avatar.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 //跳转个人游戏主页界面
-                Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getUser_id());
+                Jump2View.getInstance().goActUserAppHome(view.getContext(), item.getUser_id());
             }
         });
 

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppGiftBag.java

@@ -9,7 +9,6 @@ import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
 import com.sheep.gamegroup.model.entity.GameEntity;
 import com.sheep.gamegroup.model.entity.GiftBag;
 import com.sheep.gamegroup.model.entity.GiftBagApp;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
@@ -56,7 +55,7 @@ public class AdpGcGameAppGiftBag extends RecyclerViewAdapter<GiftBagApp> {
                 @Override
                 public void onClick(View v) {
                     if(CommonUtil.getInstance().isInstallApp(gameEntity.getApp().getPackage_name(), gameEntity.getApp().getName())){
-                        CommonUtil.getInstance().receiveGiftById(ActivityManager.getInstance().currentActivity(), item, new Action1<Integer>() {
+                        CommonUtil.getInstance().receiveGiftById(v.getContext(), item, new Action1<Integer>() {
                             @Override
                             public void call(Integer integer) {
                                 item.setReceived(true);

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserCenterModule.java

@@ -8,7 +8,7 @@ import android.widget.TextView;
 import com.bumptech.glide.Glide;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
-import com.sheep.gamegroup.util.ActivityManager;
+
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
@@ -36,7 +36,7 @@ public class AdpUserCenterModule extends BaseQuickAdapter<UserCenterModule, Base
         helper.getView(R.id.my_item_but).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                CommonUtil.getInstance().goNative(ActivityManager.getInstance().currentActivity(), item, "个人中心");
+                CommonUtil.getInstance().goNative(v.getContext(), item, "个人中心");
             }
         });
     }

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserCommentReply.java

@@ -13,7 +13,6 @@ import com.sheep.gamegroup.model.entity.ShowAll;
 import com.sheep.gamegroup.model.entity.UserComment;
 import com.sheep.gamegroup.model.entity.UserCommentReply;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
@@ -115,7 +114,7 @@ public class AdpUserCommentReply extends BaseQuickAdapter<UserCommentReply, Base
         game_app_comment_user_avatar.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getUser_id());
+                Jump2View.getInstance().goActUserAppHome(view.getContext(), item.getUser_id());
             }
         });
     }

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserFocusLogList.java

@@ -9,7 +9,6 @@ import com.chad.library.adapter.base.BaseViewHolder;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserFocusLog;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -81,7 +80,7 @@ public class AdpUserFocusLogList extends BaseQuickAdapter<UserFocusLog, BaseView
             holder.itemView.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
-                    Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getTheFocusId());
+                    Jump2View.getInstance().goActUserAppHome(view.getContext(), item.getTheFocusId());
                 }
             });
 

+ 4 - 4
app/src/main/java/com/sheep/gamegroup/view/dialog/DialogSuccessUtil.java

@@ -1,12 +1,12 @@
 package com.sheep.gamegroup.view.dialog;
 
+import android.content.Context;
 import android.content.DialogInterface;
 import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.TextView;
 
 import com.sheep.gamegroup.absBase.AbsObserver;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
@@ -21,9 +21,9 @@ import io.reactivex.schedulers.Schedulers;
  * realicing@sina.com
  */
 public class DialogSuccessUtil {
-    public static void showSuccess(String msg, DialogInterface.OnDismissListener onDismissListener) {
-        View dialog_parent = View.inflate(SheepApp.getInstance(), R.layout.dialog_success, null);
-        final AlertDialog dialog = new AlertDialog.Builder(ActivityManager.getInstance().currentActivity(), R.style.AppTheme_Dialog_Alert)
+    public static void showSuccess(Context context, String msg, DialogInterface.OnDismissListener onDismissListener) {
+        View dialog_parent = View.inflate(context, R.layout.dialog_success, null);
+        final AlertDialog dialog = new AlertDialog.Builder(context, R.style.AppTheme_Dialog_Alert)
                 .setView(dialog_parent)
                 .create();
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtArticleComment.java

@@ -156,7 +156,7 @@ public class FgtArticleComment extends BaseListFragment3<UserComment> implements
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         input_comment_input.setText("");
-                        DialogSuccessUtil.showSuccess("发表成功", new DialogInterface.OnDismissListener() {
+                        DialogSuccessUtil.showSuccess(getContext(), "发表成功", new DialogInterface.OnDismissListener() {
                             @Override
                             public void onDismiss(DialogInterface dialogInterface) {
                                 refreshData();

+ 1 - 3
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtExchangeCMCC.java

@@ -30,7 +30,6 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.CMCCExchange;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.RefreshUtil;
@@ -211,8 +210,7 @@ public class FgtExchangeCMCC extends BaseFragment implements View.OnClickListene
 
     private SelfCountDownTimer selfCountDownTimer;
 
-    public AlertDialog showCMCCLookDialog(Context context, final DialogConfig dialogConfig) {
-        final Context mContext = context == null ? ActivityManager.getInstance().currentActivity() : context;
+    public AlertDialog showCMCCLookDialog(Context mContext, final DialogConfig dialogConfig) {
         String title = dialogConfig.getTitle();
         final View.OnClickListener btnCloseOnClickListener = dialogConfig.getBtnCloseOnClickListener();
         View dialog_parent = View.inflate(mContext, dialogConfig.getParentLayoutId(), null);

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGameFocusList.java

@@ -10,7 +10,6 @@ import com.sheep.gamegroup.model.entity.Applications;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserFocusGame;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ViewHolder;
@@ -78,7 +77,7 @@ public class FgtGameFocusList extends BaseListFragment2<UserFocusGame>{
                     holder.itemView.setOnClickListener(new View.OnClickListener() {
                         @Override
                         public void onClick(View view) {
-                            Jump2View.getInstance().goPlayGameDetail(ActivityManager.getInstance().currentActivity(), item.getTheFocusId());
+                            Jump2View.getInstance().goPlayGameDetail(view.getContext(), item.getTheFocusId());
                         }
                     });
 

+ 2 - 3
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGcGameAppWelfare.java

@@ -9,7 +9,6 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.GameEntity;
 import com.sheep.gamegroup.model.entity.GameInfoList;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.view.adapter.AdpGcGameAppActivityRecommend;
@@ -104,7 +103,7 @@ public class FgtGcGameAppWelfare extends BaseRefreshLoadMoreFragment {
                     public void onNext(BaseMessage baseMessage) {
                         List<Article> newList = baseMessage.getDatas(Article.class);
                         if (!ListUtil.isEmpty(newList)) {
-                            gameInfoListArrayList.add(new GameInfoList("文章推荐", new AdpGcGameAppArticleRecommend(ActivityManager.getInstance().currentActivity(), newList)).setSort(SORT_ARTICLE));
+                            gameInfoListArrayList.add(new GameInfoList("文章推荐", new AdpGcGameAppArticleRecommend(getContext(), newList)).setSort(SORT_ARTICLE));
                             recyclerView.getAdapter().notifyDataSetChanged();
                         }
                         refreshOrLoadMoreComplete();
@@ -125,7 +124,7 @@ public class FgtGcGameAppWelfare extends BaseRefreshLoadMoreFragment {
                     public void onNext(BaseMessage baseMessage) {
                         List<Article> newList = baseMessage.getDatas(Article.class);
                         if (!ListUtil.isEmpty(newList)) {
-                            gameInfoListArrayList.add(new GameInfoList("活动推荐", new AdpGcGameAppActivityRecommend(ActivityManager.getInstance().currentActivity(), newList)).setSort(SORT_ACTIVITY));
+                            gameInfoListArrayList.add(new GameInfoList("活动推荐", new AdpGcGameAppActivityRecommend(getContext(), newList)).setSort(SORT_ACTIVITY));
                             recyclerView.getAdapter().notifyDataSetChanged();
                         }
                         refreshOrLoadMoreComplete();

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSearchAppOrTask.java

@@ -68,7 +68,7 @@ public class FgtSearchAppOrTask extends BaseListFragment3<HomePageSearch> implem
     public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
         HomePageSearch item = ListUtil.getItem(list, position);
         ApiUtil.postTopSearchStatisticsClickTopSearch(item);
-        Jump2View.getInstance().goTaskOrAppDetail(item);
+        Jump2View.getInstance().goTaskOrAppDetail(getContext(), item);
     }
 
     @Override

+ 3 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSmallSheep.java

@@ -45,6 +45,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
+import com.kfzs.duanduan.view.DialogStorageLow;
 import com.scwang.smartrefresh.layout.SmartRefreshLayout;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
 import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
@@ -364,7 +365,8 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
 
     @OnClick(R.id.to_search_but)
     public void toSearchActivity() {
-        Jump2View.getInstance().goAppTaskSearch(activity, null);
+//        Jump2View.getInstance().goAppTaskSearch(activity, null);
+        DialogStorageLow.showDialog("asdfasdf");
     }
 
     @OnClick(R.id.home_search_msg_iv)

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtUserCommentDetail.java

@@ -144,7 +144,7 @@ public class FgtUserCommentDetail extends BaseListFragment3<UserCommentReply> im
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         input_comment_input.setText("");
-                        DialogSuccessUtil.showSuccess("发表成功", new DialogInterface.OnDismissListener() {
+                        DialogSuccessUtil.showSuccess(getContext(),"发表成功", new DialogInterface.OnDismissListener() {
                             @Override
                             public void onDismiss(DialogInterface dialogInterface) {
                                 refreshData();

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtVideoComment.java

@@ -88,7 +88,7 @@ public class FgtVideoComment extends BaseListFragment4<UserComment> {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         input_comment_input.setText("");
-                        DialogSuccessUtil.showSuccess("发表成功", new DialogInterface.OnDismissListener() {
+                        DialogSuccessUtil.showSuccess(getContext(), "发表成功", new DialogInterface.OnDismissListener() {
                             @Override
                             public void onDismiss(DialogInterface dialogInterface) {
                                 refreshData();
@@ -138,7 +138,7 @@ public class FgtVideoComment extends BaseListFragment4<UserComment> {
     @Override
     public void notifyDataSetChanged() {
         super.notifyDataSetChanged();
-        if(lastMessage != null)
+        if (lastMessage != null)
             ViewUtil.setText(video_comment_title_tv, R.string.total_x_comment, String.valueOf(lastMessage.getTotal()));
     }
 

+ 18 - 6
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -27,7 +27,6 @@ import com.sheep.gamegroup.di.modules.NetModule;
 import com.sheep.gamegroup.module.login.LoginAct;
 import com.sheep.gamegroup.module.plugin.util.PluginUtil;
 import com.sheep.gamegroup.usage.AppUsageManager;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.AppUtil;
 import com.sheep.gamegroup.util.CertificationUtil;
 import com.sheep.gamegroup.util.ChannelContent;
@@ -60,6 +59,8 @@ import com.youmi.android.offer.YmConfig;
 
 import org.xutils.x;
 
+import java.lang.ref.WeakReference;
+
 import cn.jpush.android.api.JPushInterface;
 
 /**
@@ -70,7 +71,7 @@ public class SheepApp extends MultiDexApplication {
 
     public static SheepApp mSheepApp;
     public ConnectAddress connectAddress;
-
+    private WeakReference<Activity> activityRef;
 
     private NetComponent netComponent;
     private boolean isShowQB;
@@ -383,6 +384,14 @@ public class SheepApp extends MultiDexApplication {
                 .build();
     }
 
+    public Activity getCurrentActivity() {
+        if (activityRef != null && activityRef.get() != null) {
+            return activityRef.get();
+        } else {
+            return null;
+        }
+    }
+
     public int mActivityCount;//显示的activity的个数, 0个时代表暂停或退出应用,1个代表应用正显示在用户面前
     private boolean notStop = false;
     /**
@@ -392,12 +401,11 @@ public class SheepApp extends MultiDexApplication {
 
         @Override
         public void onActivityCreated(final Activity activity, Bundle savedInstanceState) {
-            ActivityManager.getInstance().pushActivity(activity);
             if (/*activity instanceof SplashAct || */activity instanceof LoginAct) {
                 SysAppUtil.showVersionInfo(activity, SpUtils.getIgnoreMd5());
             } else if (YmConfig.isAvf(activity)) {
                 YmConfig.showTipDialog(activity, YmConfig.TYPE_ADD_VIEW);
-            } else if(activity instanceof ActMain){//进入主页时检查插件更新
+            } else if (activity instanceof ActMain) {//进入主页时检查插件更新
                 PluginUtil.initPlugin();
             }
 
@@ -432,6 +440,8 @@ public class SheepApp extends MultiDexApplication {
 
         @Override
         public void onActivityResumed(Activity activity) {
+            if (activityRef != null) activityRef.clear();
+            activityRef = new WeakReference<>(activity);
         }
 
         @Override
@@ -481,7 +491,6 @@ public class SheepApp extends MultiDexApplication {
                 if (!UMConfigUtils.isNotNeedAct(activity))
                     UMConfigUtils.Event.SHEEP_DESTROYED.onEvent();
             }
-            ActivityManager.getInstance().endActivity(activity);
         }
     };
 
@@ -489,9 +498,12 @@ public class SheepApp extends MultiDexApplication {
      * quit app safe
      */
     public void quit() {
+        if (activityRef != null && activityRef.get() != null) {
+            activityRef.clear();
+            activityRef = null;
+        }
         try {
             OkDownload.with().downloadDispatcher().cancelAll();
-//            ActivityManager.getInstance().finishAllActivity();
             android.os.Process.killProcess(android.os.Process.myPid());
             System.exit(0);
         } catch (Exception ignore) {

+ 2 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java

@@ -30,10 +30,10 @@ import com.sheep.gamegroup.greendao.DDProviderHelper;
 import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.model.entity.Applications;
 import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.DownloadUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.StringUtils;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.greenrobot.eventbus.EventBus;
@@ -197,7 +197,7 @@ public class DownloadService extends Service {
     }
 
     private static void showDownloadType(final String link, final String taskName) {
-        final Activity activity = ActivityManager.getInstance().currentActivity();
+        final Activity activity = SheepApp.getInstance().getCurrentActivity();
         if (activity == null) {
             return;
         }