Sfoglia il codice sorgente

尝试优化ANR的问题

zengjiebin 8 anni fa
parent
commit
05333f7d16

+ 7 - 2
app/src/main/java/com/kfzs/duanduan/ActMain.java

@@ -361,7 +361,7 @@ public class ActMain extends BaseActivity {
     private DownLoadInfo addNewDownloadTask(String gameName, String downloadUrl, String packageName,
                                     int versionCode, String iconUrl, String size, Integer gameId, int state) {
 
-        DownLoadInfo task = new DownLoadInfo();
+        final DownLoadInfo task = new DownLoadInfo();
         task.setMIconUrl(iconUrl);
         task.setMGameName(gameName);
         task.setMDownloadUrl(downloadUrl);
@@ -370,7 +370,12 @@ public class ActMain extends BaseActivity {
         task.setMTotalSize(Double.valueOf(size));
         task.setMGameID(gameId);
         task.setMStatus(state);
-        mDownloadTaskService.addDownloadTask(task);
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                mDownloadTaskService.addDownloadTask(task);
+            }
+        }).start();
         return task;
     }
 

+ 9 - 4
app/src/main/java/com/kfzs/duanduan/utils/GameStatusScanner.java

@@ -389,9 +389,9 @@ public abstract class GameStatusScanner {
         MobclickAgent.onEvent(mContext, UMConfigUtils.Event.GAME_DOWNLOAD.getKey(), map);
     }
 
-    public static DownLoadInfo addNewDownloadTask(DownloadTaskService downloadTaskService,String gameName, String downloadUrl,
-                                                  String packageName, int versionCode, String iconUrl, int gameId,int state) {
-        DownLoadInfo task = new DownLoadInfo();
+    public static DownLoadInfo addNewDownloadTask(final DownloadTaskService downloadTaskService, String gameName, String downloadUrl,
+                                                  String packageName, int versionCode, String iconUrl, int gameId, int state) {
+        final DownLoadInfo task = new DownLoadInfo();
         task.setMIconUrl(iconUrl);
         task.setMGameName(gameName);
         task.setMDownloadUrl(downloadUrl);
@@ -400,7 +400,12 @@ public abstract class GameStatusScanner {
         task.setMGameID(gameId);
         task.setMApkPath(ClassFileHelper.DIR+ File.separator +packageName + ClassFileHelper.FILE_SUFFIX);
         task.setMStatus(state);
-        downloadTaskService.addDownloadTask(task);
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                downloadTaskService.addDownloadTask(task);
+            }
+        }).start();
         return task;
     }
 

+ 6 - 1
app/src/main/java/com/sheep/gamegroup/model/util/SheepSubscriber.java

@@ -67,7 +67,12 @@ public abstract class SheepSubscriber<T> extends Subscriber<T> {
                 if(throwable.message.startsWith("{")){
                     baseMessage = JSONObject.parseObject(throwable.message, BaseMessage.class);
                 }else {
-                    baseMessage = JSONObject.parseObject(BaseMessageConverter.decrypt(throwable.message), BaseMessage.class);
+                    try {
+                        baseMessage = JSONObject.parseObject(BaseMessageConverter.decrypt(throwable.message), BaseMessage.class);
+                    } catch (Exception ignore) {
+                        baseMessage = new BaseMessage();
+                        baseMessage.setMsg(throwable.message);
+                    }
                 }
 
 

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

@@ -278,7 +278,7 @@ public class ActMainGame extends BaseActivity {
     private DownLoadInfo addNewDownloadTask(String gameName, String downloadUrl, String packageName,
                                             int versionCode, String iconUrl, String size, Integer gameId, int state) {
 
-        DownLoadInfo task = new DownLoadInfo();
+        final DownLoadInfo task = new DownLoadInfo();
         task.setMIconUrl(iconUrl);
         task.setMGameName(gameName);
         task.setMDownloadUrl(downloadUrl);
@@ -287,7 +287,12 @@ public class ActMainGame extends BaseActivity {
         task.setMTotalSize(Double.valueOf(size));
         task.setMGameID(gameId);
         task.setMStatus(state);
-        mDownloadTaskService.addDownloadTask(task);
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                mDownloadTaskService.addDownloadTask(task);
+            }
+        }).start();
         return task;
     }
 

+ 9 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java

@@ -242,10 +242,15 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                         task.setFilePath(filePath);
                         task.start();
                     }
-                    if(mDownloadTaskService.addDownloadTask(downLoadInfo)){
-                        //发送红点信息
-                        EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
-                    }
+                    new Thread(new Runnable() {
+                        @Override
+                        public void run() {
+                            if(mDownloadTaskService.addDownloadTask(downLoadInfo)){
+                                //发送红点信息
+                                EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
+                            }
+                        }
+                    }).start();
                     UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
                     break;
                 case 3://开始安装

+ 9 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -434,10 +434,15 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                             task.setFilePath(filePath);
                             task.start();
                         }
-                        if (mDownloadTaskService.addDownloadTask(downLoadInfo)) {
-                            //发送红点信息
-                            EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
-                        }
+                        new Thread(new Runnable() {
+                            @Override
+                            public void run() {
+                                if (mDownloadTaskService.addDownloadTask(downLoadInfo)) {
+                                    //发送红点信息
+                                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
+                                }
+                            }
+                        }).start();
                         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
                         break;
                     case 2: