diff --git a/app/src/leanback/java/com/fongmi/android/tv/utils/PauseExecutor.java b/app/src/main/java/com/fongmi/android/tv/utils/PauseExecutor.java similarity index 100% rename from app/src/leanback/java/com/fongmi/android/tv/utils/PauseExecutor.java rename to app/src/main/java/com/fongmi/android/tv/utils/PauseExecutor.java diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java index 33e70fa18..d706464dd 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java @@ -39,6 +39,7 @@ import com.fongmi.android.tv.ui.base.ViewType; import com.fongmi.android.tv.ui.custom.CustomScroller; import com.fongmi.android.tv.ui.custom.CustomTextListener; import com.fongmi.android.tv.ui.custom.dialog.SiteDialog; +import com.fongmi.android.tv.utils.PauseExecutor; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.Utils; import com.github.catvod.net.OkHttp; @@ -48,8 +49,8 @@ import com.google.android.flexbox.FlexboxLayoutManager; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; import okhttp3.Call; import okhttp3.Response; @@ -60,10 +61,10 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call private CollectAdapter mCollectAdapter; private SearchAdapter mSearchAdapter; private RecordAdapter mRecordAdapter; - private ExecutorService mExecutor; private WordAdapter mWordAdapter; private CustomScroller mScroller; private SiteViewModel mViewModel; + private PauseExecutor mExecutor; private List mSites; public static void start(Activity activity) { @@ -189,7 +190,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call mBinding.view.setVisibility(View.VISIBLE); mBinding.result.setVisibility(View.VISIBLE); if (mExecutor != null) mExecutor.shutdownNow(); - mExecutor = Executors.newFixedThreadPool(Constant.THREAD_POOL * 2); + mExecutor = new PauseExecutor(Constant.THREAD_POOL * 2, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>()); String keyword = mBinding.keyword.getText().toString().trim(); for (Site site : mSites) mExecutor.execute(() -> search(site, keyword)); App.post(() -> mRecordAdapter.add(keyword), 250); @@ -290,6 +291,18 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call mScroller.setLoading(true); } + @Override + protected void onResume() { + super.onResume(); + if (mExecutor != null) mExecutor.resume(); + } + + @Override + protected void onPause() { + super.onPause(); + if (mExecutor != null) mExecutor.pause(); + } + @Override public void onBackPressed() { if (isVisible(mBinding.result)) {