//创建线程池
private final ThreadPoolExecutor threadPoolExecutor =
new ThreadPoolExecutor(3, 10, 100,
TimeUnit.MILLISECONDS, new LinkedBlockingDeque<>());
// 定义线程
Runnable test1Runnable;
Runnable test2Runnable;
Runnable test3Runnable;
//定义处理任务的线程方法
private Runnable createTest1Runnable(){
//lambda表达式
return () -> {
//业务逻辑1
/**
设置标志位testFlag(初始值true)
退出页面在onBackPressed()回调函数或
onDestroy()回调函数中设置其为false,进而结束线程
*/
while (testFlag) {
//业务逻辑2
}
};
}
//线程赋值
test1Runnable = createTest1Runnable();
//放入线程池执行
threadPoolExecutor.execute(test1Runnable);
//在回调函数onDestroy()中关闭线程
threadPoolExecutor.shutdownNow();