From 51b77d4c8530a0e0abef390d940491fb89b928d4 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Sat, 4 Mar 2023 23:04:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E4=B8=AA=E5=88=AB=E6=9C=BA=E5=9E=8B=E9=87=8D=E5=90=AF=E5=90=8E?= =?UTF-8?q?=E8=87=AA=E5=90=AF=E5=8A=A8=E6=97=B6`startService`=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E7=A9=BA=E6=8C=87=E9=92=88=E5=AF=BC=E8=87=B4`crash`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/idormy/sms/forwarder/App.kt | 45 ++++++++++--------- .../sms/forwarder/activity/MainActivity.kt | 11 ++--- .../sms/forwarder/fragment/FrpcFragment.kt | 11 ++--- .../sms/forwarder/fragment/ServerFragment.kt | 31 ++++++++----- 4 files changed, 54 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/App.kt b/app/src/main/java/com/idormy/sms/forwarder/App.kt index 74e71ee4..eeb84289 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/App.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/App.kt @@ -113,24 +113,29 @@ class App : Application(), CactusCallback, Configuration.Provider by Core { } //启动前台服务 - val intent = Intent(this, ForegroundService::class.java) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(intent) - } else { - startService(intent) + Intent(this, ForegroundService::class.java).also { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(it) + } else { + startService(it) + } } //网络状态监听 - val networkStateServiceIntent = Intent(this, NetworkStateService::class.java) - startService(networkStateServiceIntent) + Intent(this, NetworkStateService::class.java).also { + startService(it) + } //电池状态监听 - val batteryServiceIntent = Intent(this, BatteryService::class.java) - startService(batteryServiceIntent) + Intent(this, BatteryService::class.java).also { + startService(it) + } //启动HttpServer if (HttpServerUtils.enableServerAutorun) { - startService(Intent(this, HttpService::class.java)) + Intent(this, HttpService::class.java).also { + startService(it) + } } //Cactus 集成双进程前台服务,JobScheduler,onePix(一像素),WorkManager,无声音乐 @@ -218,19 +223,15 @@ class App : Application(), CactusCallback, Configuration.Provider by Core { } mLastTimer.postValue(dateFormat.format(Date(CactusSave.lastTimer * 1000))) mEndDate.postValue(CactusSave.endDate) - mDisposable = Observable.interval(1, TimeUnit.SECONDS) - .map { - oldTimer + it - } - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { aLong -> - CactusSave.timer = aLong - CactusSave.date = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).run { - format(Date()) - } - mTimer.value = dateFormat.format(Date(aLong * 1000)) + mDisposable = Observable.interval(1, TimeUnit.SECONDS).map { + oldTimer + it + }.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe { aLong -> + CactusSave.timer = aLong + CactusSave.date = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).run { + format(Date()) } + mTimer.value = dateFormat.format(Date(aLong * 1000)) + } } override fun onStop() { diff --git a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt index d226dbf7..6f148688 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt @@ -105,11 +105,12 @@ class MainActivity : BaseActivity(), //启动前台服务 if (!ForegroundService.isRunning) { - val intent = Intent(this, ForegroundService::class.java) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(intent) - } else { - startService(intent) + Intent(this, ForegroundService::class.java).also { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(it) + } else { + startService(it) + } } } }) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt index 21819f50..66736e63 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt @@ -133,11 +133,12 @@ class FrpcFragment : BaseFragment(), FrpcPagingAdapter.On } R.id.iv_play -> { if (!ForegroundService.isRunning) { - val intent = Intent(requireContext(), ForegroundService::class.java) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - requireContext().startForegroundService(intent) - } else { - requireContext().startService(intent) + Intent(requireContext(), ForegroundService::class.java).also { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + requireContext().startForegroundService(it) + } else { + requireContext().startService(it) + } } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt index 3904a2e6..f28199c4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt @@ -236,9 +236,11 @@ class ServerFragment : BaseFragment(), View.OnClickListe HttpServerUtils.enableApiLocation = isChecked if (ServiceUtils.isServiceRunning("com.idormy.sms.forwarder.service.HttpService")) { Log.d("ServerFragment", "onClick: 重启服务") - appContext?.stopService(Intent(appContext, HttpService::class.java)) - Thread.sleep(500) - appContext?.startService(Intent(appContext, HttpService::class.java)) + Intent(appContext, HttpService::class.java).also { + appContext?.stopService(it) + Thread.sleep(500) + appContext?.startService(it) + } refreshButtonText() } } @@ -255,10 +257,12 @@ class ServerFragment : BaseFragment(), View.OnClickListe checkCallPermission() checkContactsPermission() checkLocationPermission() - if (ServiceUtils.isServiceRunning("com.idormy.sms.forwarder.service.HttpService")) { - appContext?.stopService(Intent(appContext, HttpService::class.java)) - } else { - appContext?.startService(Intent(appContext, HttpService::class.java)) + Intent(appContext, HttpService::class.java).also { + if (ServiceUtils.isServiceRunning("com.idormy.sms.forwarder.service.HttpService")) { + appContext?.stopService(it) + } else { + appContext?.startService(it) + } } refreshButtonText() } @@ -318,11 +322,14 @@ class ServerFragment : BaseFragment(), View.OnClickListe HttpServerUtils.serverWebPath = webPath XToastUtils.info(getString(R.string.restarting_httpserver)) - if (ServiceUtils.isServiceRunning("com.idormy.sms.forwarder.service.HttpService")) { - appContext?.stopService(Intent(appContext, HttpService::class.java)) - appContext?.startService(Intent(appContext, HttpService::class.java)) - } else { - appContext?.startService(Intent(appContext, HttpService::class.java)) + Intent(appContext, HttpService::class.java).also { + if (ServiceUtils.isServiceRunning("com.idormy.sms.forwarder.service.HttpService")) { + appContext?.stopService(it) + Thread.sleep(500) + appContext?.startService(it) + } else { + appContext?.startService(it) + } } refreshButtonText() true // allow selection