From 38492bbaa63586e2f4877da0eaa01a082fd565a6 Mon Sep 17 00:00:00 2001 From: 554325746@qq.com <554325746@qq.com> Date: 星期三, 25 十二月 2019 08:42:58 +0800 Subject: [PATCH] a --- app/src/main/java/com/basic/security/fragment/HomeFragment.java | 151 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 104 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/com/basic/security/fragment/HomeFragment.java b/app/src/main/java/com/basic/security/fragment/HomeFragment.java index dd63bec..64d72ca 100644 --- a/app/src/main/java/com/basic/security/fragment/HomeFragment.java +++ b/app/src/main/java/com/basic/security/fragment/HomeFragment.java @@ -1,5 +1,6 @@ package com.basic.security.fragment; +import android.content.Intent; import android.os.SystemClock; import android.view.View; import android.widget.AbsListView; @@ -8,11 +9,15 @@ import android.widget.Spinner; import com.basic.security.R; +import com.basic.security.base.BaseApplication; import com.basic.security.fragment.helper.HomeGridViewAdapter; import com.basic.security.fragment.helper.HomePlayAlarmVideo; import com.basic.security.manager.AlarmManager; import com.basic.security.manager.SettingManager; +import com.basic.security.utils.MemoryUtil; +import com.basic.security.utils.RabbitMQConsumer; import com.basic.security.utils.SocketClient; +import com.basic.security.utils.ThreadUtil; import org.androidannotations.annotations.AfterInject; import org.androidannotations.annotations.AfterViews; @@ -27,12 +32,14 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @EFragment(R.layout.fragment_home) public class HomeFragment extends HomePlayAlarmVideo { - List<Map<String, String>> newSqliteAlarmList; + public List<Map<String, String>> newSqliteAlarmList; @AfterInject void afterInject() { @@ -64,27 +71,28 @@ refreshGridView(); while (true) { try{ - try { - if (1!=1) { - startNewSocketClient(); - break; - } else { - List<SocketClient> socketClientListToRemove = new ArrayList<>(); - for (SocketClient socketClient1 : socketClientList) { - if (System.currentTimeMillis() - socketClient1.lastUpdateTime > 1000*60*2) { -// socketClient1.closeSocket(); - socketClient1.interrupt(); - socketClientListToRemove.add(socketClient1); - } - } - socketClientList.removeAll(socketClientListToRemove); - if (socketClientList.size() == 0) { - startNewSocketClient(); - } - } - } catch (Exception e) { - System.out.println("pullAlarmDataList, " + e.getMessage()); - } + RabbitMQConsumer.init(); +// try { +// if (1!=1) { +// startNewSocketClient(); +// break; +// } else { +// List<SocketClient> socketClientListToRemove = new ArrayList<>(); +// for (SocketClient socketClient1 : socketClientList) { +// if (System.currentTimeMillis() - socketClient1.lastUpdateTime > 1000*60*2) { +//// socketClient1.closeSocket(); +// socketClient1.interrupt(); +// socketClientListToRemove.add(socketClient1); +// } +// } +// socketClientList.removeAll(socketClientListToRemove); +// if (socketClientList.size() == 0) { +// startNewSocketClient(); +// } +// } +// } catch (Exception e) { +// System.out.println("pullAlarmDataList, " + e.getMessage()); +// } } catch (Exception e) { e.printStackTrace(); } finally { @@ -96,8 +104,8 @@ @Override public void show() { for (AlarmListAdapter.ViewHolder viewHolder : viewHolderSet.keySet()) { - if ("true".equals(viewHolder.alarm.get("videoPlaying"))) { - viewHolder.alarm.put("videoPlaying", "false"); + if (AlarmManager.getAlarmPlaying(viewHolder.alarm)) { + AlarmManager.putAlarmPlaying(viewHolder.alarm, false); } } refreshGridView(); @@ -117,33 +125,39 @@ } catch (Exception e) { e.printStackTrace(); } - refreshGridViewLocker.lock(); - newSqliteAlarmList = AlarmManager.findAlarmList(); - if (newSqliteAlarmList != null) { - final Map<String, Map<String, String>> sqliteAlarmListMap = new HashMap<>(); - sqliteAlarmListLock.lock(); - for (Map<String, String> alarm : sqliteAlarmList) { - sqliteAlarmListMap.put(alarm.get("id"), alarm); - } - sqliteAlarmListLock.unlock(); - for (Map<String, String> alarm : newSqliteAlarmList) { - alarm.put("videoPlaying", "false"); - Map<String, String> backupAlarm = sqliteAlarmListMap.get(alarm.get("id")); - if (backupAlarm != null) { - if (!"true".equals(backupAlarm.get("videoPlayFinished"))) { - if ("true".equals(backupAlarm.get("videoPlaying"))) { - alarm.put("videoPlaying", backupAlarm.get("videoPlaying")); + try { + refreshGridViewLocker.lock(); + newSqliteAlarmList = AlarmManager.findAlarmList(); + if (newSqliteAlarmList != null) { + final Map<String, Map<String, String>> sqliteAlarmListMap = new HashMap<>(); + sqliteAlarmListLock.lock(); + for (Map<String, String> alarm : sqliteAlarmList) { + sqliteAlarmListMap.put(alarm.get("id"), alarm); + } + sqliteAlarmListLock.unlock(); + for (Map<String, String> alarm : newSqliteAlarmList) { + //AlarmManager.putAlarmPlaying(alarm, false); + Map<String, String> backupAlarm = sqliteAlarmListMap.get(alarm.get("id")); + if (backupAlarm != null) { + if ("true".equals(backupAlarm.get("videoPlayFinished"))) { + if (AlarmManager.getAlarmPlaying(alarm)) { + //alarm.put("videoPlaying", backupAlarm.get("videoPlaying")); + } } } } + sqliteAlarmListLock.lock(); + sqliteAlarmList.clear(); + sqliteAlarmList.addAll(newSqliteAlarmList); + sqliteAlarmListLock.unlock(); + updateAlarmDataListInUIThread(); } - sqliteAlarmListLock.lock(); - sqliteAlarmList.clear(); - sqliteAlarmList.addAll(newSqliteAlarmList); - sqliteAlarmListLock.unlock(); - updateAlarmDataListInUIThread(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + refreshGridViewLocker.unlock(); } - refreshGridViewLocker.unlock(); + } @UiThread @@ -179,7 +193,7 @@ public void onScrollStateChanged(AbsListView view, int scrollState) { sqliteAlarmListLock.lock(); for (Map<String, String> sqliteAlarm : sqliteAlarmList) { - sqliteAlarm.put("videoPlaying", "false"); + AlarmManager.putAlarmPlaying(sqliteAlarm, false); } sqliteAlarmListLock.unlock(); try{ @@ -201,8 +215,51 @@ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {} }); saveVideoPlayerCurrentTime(); +// executorService.execute(new Runnable() { +// @Override +// public void run() { +// while (true) { +// try { +// AlarmManager.updateVideoUrl(); +// SystemClock.sleep(1 * 1000); +// } catch (Exception e) { +//// e.printStackTrace(); +// System.out.println("HomeFragment.run " + e.getMessage()); +// } +// } +// } +// }); + executorService.execute(new Runnable() { + @Override + public void run() { + while (true) { + try { + MemoryUtil.monitorMemory(); + sendKeepLife(); + ThreadUtil.threadCreateObserver(); + SystemClock.sleep(3 * 1000); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + }); } + public static void sendKeepLife() { + try { + if (System.currentTimeMillis() - lastSendKeepLife > 2 * 1000) { + Intent intent = new Intent("keepLife"); + intent.putExtra("message", "This is my message!"); + BaseApplication.getApplication().activity.sendBroadcast(intent); + lastSendKeepLife = System.currentTimeMillis(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + static long lastSendKeepLife = 0; + public ExecutorService executorService = Executors.newCachedThreadPool(); @Click public void goto_top() { alarmListGridView.smoothScrollToPositionFromTop(0,0); -- Gitblit v1.8.0