From 02d9453a14fc8a534cdb2c0e9127c6891392be3a Mon Sep 17 00:00:00 2001 From: zHd4 Date: Sun, 5 Jan 2025 00:34:44 +0100 Subject: [PATCH] Fix unlocked app issue after CacheCleanerService stop --- app/src/main/java/app/notesr/App.java | 21 +++++++++++++++++++ .../notesr/service/CacheCleanerService.java | 5 ++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/notesr/App.java b/app/src/main/java/app/notesr/App.java index 24cf0373..66024e25 100644 --- a/app/src/main/java/app/notesr/App.java +++ b/app/src/main/java/app/notesr/App.java @@ -37,4 +37,25 @@ public boolean serviceRunning(Class serviceClass) { return foundName != null; } + + public boolean isAnyActivityVisible() { + ActivityManager activityManager = (ActivityManager) + context.getSystemService(Context.ACTIVITY_SERVICE); + + if (activityManager != null) { + for (ActivityManager.AppTask task : activityManager.getAppTasks()) { + ActivityManager.RecentTaskInfo taskInfo = task.getTaskInfo(); + + if (taskInfo != null && taskInfo.topActivity != null) { + String packageName = taskInfo.topActivity.getPackageName(); + + if (context.getPackageName().equals(packageName)) { + return true; + } + } + } + } + + return false; + } } diff --git a/app/src/main/java/app/notesr/service/CacheCleanerService.java b/app/src/main/java/app/notesr/service/CacheCleanerService.java index 662c41c1..b96bd7f0 100644 --- a/app/src/main/java/app/notesr/service/CacheCleanerService.java +++ b/app/src/main/java/app/notesr/service/CacheCleanerService.java @@ -50,10 +50,13 @@ public void run() { stopForeground(STOP_FOREGROUND_REMOVE); stopSelf(); + + if (!App.getContext().isAnyActivityVisible()) { + System.exit(0); + } } } - //noinspection BusyWait Thread.sleep(DELAY); } } catch (InterruptedException e) {