diff --git a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt index ffb980723..0922cde84 100644 --- a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt @@ -95,9 +95,10 @@ class OtherConfigFragment : BasePreferenceFragment(), override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { when (key) { - PreferKey.threadCount -> upPreferenceSummary( - key, AppConfig.threadCount.toString() - ) + PreferKey.threadCount -> { + upPreferenceSummary(key, AppConfig.threadCount.toString()) + postEvent(PreferKey.threadCount, "") + } PreferKey.webPort -> { upPreferenceSummary(key, webPort.toString()) if (WebService.isRun) { diff --git a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt index 56b6e5715..fc9505a77 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt @@ -157,6 +157,9 @@ class MainActivity : VMBaseActivity(R.layout.activity_main), view_pager_main.setCurrentItem(3, false) } } + observeEvent(PreferKey.threadCount) { + viewModel.upPool() + } } private inner class TabFragmentPageAdapter internal constructor(fm: FragmentManager) : diff --git a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt index 3263640ff..06fd049d3 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt @@ -21,7 +21,8 @@ import kotlinx.coroutines.delay import java.util.concurrent.Executors class MainViewModel(application: Application) : BaseViewModel(application) { - var upTocPool = Executors.newFixedThreadPool(AppConfig.threadCount).asCoroutineDispatcher() + private var upTocPool = + Executors.newFixedThreadPool(AppConfig.threadCount).asCoroutineDispatcher() val updateList = hashSetOf() override fun onCleared() { @@ -29,6 +30,11 @@ class MainViewModel(application: Application) : BaseViewModel(application) { upTocPool.close() } + fun upPool() { + upTocPool.close() + upTocPool = Executors.newFixedThreadPool(AppConfig.threadCount).asCoroutineDispatcher() + } + fun upChapterList() { execute { upChapterList(App.db.bookDao().hasUpdateBooks)