优化:部分手机通知栏异常显示两条常驻通知 #392

pull/408/head
pppscn 8 months ago
parent 6ad1763d38
commit dba756c2f4

@ -33,7 +33,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async
@SuppressLint("SimpleDateFormat")
@Suppress("PrivatePropertyName", "DeferredResultUnused", "OPT_IN_USAGE", "DEPRECATION", "LiftReturnOrAssignment")
@Suppress("PrivatePropertyName", "DeferredResultUnused", "OPT_IN_USAGE", "DEPRECATION")
class ForegroundService : Service() {
private val TAG: String = ForegroundService::class.java.simpleName
@ -85,7 +85,7 @@ class ForegroundService : Service() {
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
//纯客户端模式
if (SettingUtils.enablePureClientMode) return START_STICKY
if (SettingUtils.enablePureClientMode) return START_NOT_STICKY
if (intent != null) {
when (intent.action) {
@ -118,6 +118,9 @@ class ForegroundService : Service() {
}
private fun startForegroundService() {
if (isRunning) return
isRunning = true
val notification = createNotification(SettingUtils.notifyContent)
startForeground(NOTIFICATION_ID, notification)
@ -164,12 +167,8 @@ class ForegroundService : Service() {
}
}
}
isRunning = true
} catch (e: Exception) {
e.printStackTrace()
Log.e(TAG, "startForegroundService: $e")
isRunning = false
handleException(e, "startForegroundService")
}
}
@ -181,9 +180,7 @@ class ForegroundService : Service() {
compositeDisposable.dispose()
isRunning = false
} catch (e: Exception) {
e.printStackTrace()
Log.e(TAG, "stopForegroundService: $e")
isRunning = true
handleException(e, "stopForegroundService")
}
}
@ -212,8 +209,18 @@ class ForegroundService : Service() {
}
private fun updateNotification(updatedContent: String) {
val notification = createNotification(updatedContent)
notificationManager?.notify(NOTIFICATION_ID, notification)
try {
val notification = createNotification(updatedContent)
notificationManager?.notify(NOTIFICATION_ID, notification)
} catch (e: Exception) {
handleException(e, "updateNotification")
}
}
private fun handleException(e: Exception, methodName: String) {
e.printStackTrace()
Log.e(TAG, "$methodName: $e")
isRunning = false
}
}
Loading…
Cancel
Save