@Override public int onStartCommand(Intent intent, int flags, int startId) { userJSON = FileUtil.readConfigFile(userConfigPath); pgyerJSON = FileUtil.readConfigFile(pgyerVersionPath); notificationJSON = FileUtil.readConfigFile(notificationPath); try { String currentUIVersion = URLs.currentUIVersion(mContext); kpiUrl = String.format( K.kKPIMobilePath, K.kBaseUrl, currentUIVersion, userJSON.getString(URLs.kGroupId), userJSON.getString(URLs.kRoleId)); analyseUrl = String.format( K.kAnalyseMobilePath, K.kBaseUrl, currentUIVersion, userJSON.getString(URLs.kRoleId)); appUrl = String.format( K.kAppMobilePath, K.kBaseUrl, currentUIVersion, userJSON.getString(URLs.kRoleId)); messageUrl = String.format( K.kMessageMobilePath, K.kBaseUrl, currentUIVersion, userJSON.getString(URLs.kRoleId), userJSON.getString(URLs.kGroupId), userJSON.getString("user_id")); thursdaySayUrl = String.format(K.kThursdaySayMobilePath, K.kBaseUrl, currentUIVersion); } catch (JSONException e) { e.printStackTrace(); } notifitionTask(); return super.onStartCommand(intent, flags, startId); }
/* * 计算将要传递给 DashboardActivity 的通知数值 */ private void processDataCount() { try { kpiCount = getDataCount(URLs.kTabKpi, kpiUrl); analyseCount = getDataCount(URLs.kTabAnalyse, analyseUrl); appCount = getDataCount(URLs.kTabApp, appUrl); messageCount = getDataCount(URLs.kTabMessage, messageUrl); thursdaySayCount = getDataCount(URLs.kSettingThursdaySay, thursdaySayUrl); /* * 遍历获取 Tab 栏上需要显示的通知数量 ("tab_*" 的值) */ String[] typeString = { URLs.kTabKpi, URLs.kTabAnalyse, URLs.kTabApp, URLs.kTabMessage, URLs.kSettingThursdaySay }; int[] typeCount = {kpiCount, analyseCount, appCount, messageCount, thursdaySayCount}; for (int i = 0; i < typeString.length; i++) { notificationJSON.put( typeString[i], Math.abs(typeCount[i] - notificationJSON.getInt(typeString[i] + "_last"))); notificationJSON.put(typeString[i] + "_last", typeCount[i]); } if ((new File(pgyerVersionPath)).exists()) { pgyerJSON = FileUtil.readConfigFile(pgyerVersionPath); JSONObject responseData = pgyerJSON.getJSONObject(URLs.kData); pgyerCode = responseData.getString("versionCode"); packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0); versionCode = String.valueOf(packageInfo.versionCode); updataCount = pgyerCode.equals(versionCode) ? -1 : 1; } else { updataCount = -1; } passwordCount = userJSON.getString(URLs.kPassword).equals(URLs.MD5(K.kInitPassword)) ? 1 : -1; notificationJSON.put(URLs.kSettingPassword, passwordCount); notificationJSON.put(URLs.kSettingPgyer, updataCount); int settingCount = (notificationJSON.getInt(URLs.kSettingPassword) > 0 || notificationJSON.getInt(URLs.kSettingPgyer) > 0 || notificationJSON.getInt(URLs.kSettingThursdaySay) > 0) ? 1 : 0; notificationJSON.put(URLs.kSetting, settingCount); FileUtil.writeFile(notificationPath, notificationJSON.toString()); } catch (JSONException | IOException | PackageManager.NameNotFoundException e) { e.printStackTrace(); } }