From 05f2af6bfcca767e5f2a5c3678036e02936dcff6 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 25 Aug 2023 13:08:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/MicroPhoto.cpp | 7 ++++- .../microphoto/MicroPhotoService.java | 30 +++++++++++-------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/src/main/cpp/MicroPhoto.cpp b/app/src/main/cpp/MicroPhoto.cpp index af626fd4..31b9e9e0 100644 --- a/app/src/main/cpp/MicroPhoto.cpp +++ b/app/src/main/cpp/MicroPhoto.cpp @@ -189,6 +189,12 @@ Java_com_xinyingpower_microphoto_MicroPhotoService_uninit( jobject pThis, jlong handler) { CTerminal* pTerminal = reinterpret_cast(handler); + if (pTerminal == NULL) + { + return JNI_FALSE; + } + + pTerminal->SignalExit(); pTerminal->Shutdown(); delete pTerminal; @@ -196,7 +202,6 @@ Java_com_xinyingpower_microphoto_MicroPhotoService_uninit( return JNI_TRUE; } - extern "C" JNIEXPORT jlong JNICALL Java_com_xinyingpower_microphoto_MicroPhotoService_getHeartbeatDuration( JNIEnv* env, diff --git a/app/src/main/java/com/xinyingpower/microphoto/MicroPhotoService.java b/app/src/main/java/com/xinyingpower/microphoto/MicroPhotoService.java index 27978117..f459f975 100644 --- a/app/src/main/java/com/xinyingpower/microphoto/MicroPhotoService.java +++ b/app/src/main/java/com/xinyingpower/microphoto/MicroPhotoService.java @@ -109,7 +109,6 @@ public class MicroPhotoService extends Service { public static final int NOT_CONNECTED = 0; } - private AlarmManager mAlarmManager; private NotificationManager mNotificationManager; private int mHeartbeatDuration = 0; // 5m: 5 * 60 * 1000 @@ -202,6 +201,19 @@ public class MicroPhotoService extends Service { } + @Override + public void onDestroy() { + + stateService = STATE_SERVICE.NOT_CONNECTED; + + uninit(mHandler); + mHandler = 0; + + unregisterReceiver(alarmReceiver); + DSCameraManager.getInstace().unInit(); + super.onDestroy(); + } + public static class AlarmReceiver extends BroadcastReceiver { private MicroPhotoService mService; @@ -467,12 +479,14 @@ public class MicroPhotoService extends Service { startForeground(NOTIFICATION_ID_FOREGROUND_SERVICE, prepareNotification()); // Start the locker receiver - final ScreenActionReceiver screenactionreceiver = new ScreenActionReceiver(); + registerReceiver(screenactionreceiver, screenactionreceiver.getFilter()); connect(); break; case ACTION_STOP: + unregisterReceiver(screenactionreceiver); + stopForeground(true); stopSelf(); break; @@ -712,17 +726,6 @@ public class MicroPhotoService extends Service { */ - @Override - public void onDestroy() { - - stateService = STATE_SERVICE.NOT_CONNECTED; - - uninit(mHandler); - mHandler = 0; - - DSCameraManager.getInstace().unInit(); - super.onDestroy(); - } protected boolean updateTime(long timeInMillis) { boolean res = false; @@ -778,4 +781,5 @@ cellSignalStrengthGsm.getDbm(); protected long mHandler = 0; private AlarmReceiver alarmReceiver = null; + final ScreenActionReceiver screenactionreceiver = new ScreenActionReceiver(); } \ No newline at end of file