diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3664fae..88e7ccb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,6 +5,7 @@
+
isScreenOn = false
+ Intent.ACTION_SCREEN_ON -> isScreenOn = true
+ }
+ }
+ }
+
+ private val screenOnOffIntentFilter: IntentFilter by lazy {
+ IntentFilter().apply {
+ this.addCategory(Intent.CATEGORY_DEFAULT)
+ this.addAction(Intent.ACTION_SCREEN_ON)
+ this.addAction(Intent.ACTION_SCREEN_OFF)
+ }
+ }
+
+ private var isScreenOn = true
+
override fun onBind(intent: Intent): IBinder {
throw UnsupportedOperationException("Not yet implemented")
}
@@ -36,6 +62,9 @@ class ClockUpdateService : Service() {
isServiceRunning = true
startForeground()
+
+ registerReceiver(screenOnOffReceiver, screenOnOffIntentFilter)
+ Log.i(TAG, "Service on, register Broadcast Receiver.")
}
@SuppressLint("WakelockTimeout")
@@ -47,7 +76,9 @@ class ClockUpdateService : Service() {
override fun onDestroy() {
super.onDestroy()
+ unregisterReceiver(screenOnOffReceiver)
isServiceRunning = false
+ Log.i(TAG, "Service off, Unregister Broadcast Receiver and stop self.")
}
//region Foreground Service 必要通知
diff --git a/app/src/main/java/com/ray650128/iosclockwidget/receiver/AutoStartReceiver.kt b/app/src/main/java/com/ray650128/iosclockwidget/receiver/AutoStartReceiver.kt
index db2d85a..c279db0 100644
--- a/app/src/main/java/com/ray650128/iosclockwidget/receiver/AutoStartReceiver.kt
+++ b/app/src/main/java/com/ray650128/iosclockwidget/receiver/AutoStartReceiver.kt
@@ -10,11 +10,15 @@ import com.ray650128.iosclockwidget.utils.PreferenceUtil
class AutoStartReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
- Log.d("AutoStartReceiver", "intent: ${intent?.action}")
+ Log.d(TAG, "intent: ${intent?.action}")
if (context == null || intent == null) return
if (!PreferenceUtil.isGranted) return
val i = Intent(context, ClockUpdateService::class.java)
context.startForegroundService(i)
- Log.d("AutoStartReceiver", "Boot completed.")
+ Log.d(TAG, "Boot completed.")
+ }
+
+ companion object {
+ private val TAG = AutoStartReceiver::class.java.simpleName
}
}
\ No newline at end of file