知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
Android異步任務(wù)代碼很簡(jiǎn)短,簡(jiǎn)單異步工具封裝,方便執(zhí)
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):65
比較簡(jiǎn)單,就3個(gè)類。
1、創(chuàng)建一個(gè)單例的線程池,用來(lái)履行異步義務(wù)
<pre name="code" class="java">package com.ferris.pool; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class FerrisPoolManager { private ExecutorService service; private FerrisPoolManager() { int num = Runtime.getRuntime().availableProcessors(); service = Executors.newFixedThreadPool(num * 2); } private static FerrisPoolManager manager; public static FerrisPoolManager getInstance() { if (manager == null) { synchronized (FerrisPoolManager.class) { if(manager == null) { manager = new FerrisPoolManager(); } } } return manager; } public void addTask(Runnable runnable) { service.execute(runnable); } public void cancelTask(){ service.shutdown(); } }
2、定義一個(gè)義務(wù)接口
package com.ferris.pool; public interface FerrisTaskListem { public void get(); //運(yùn)行在線程里 public void update(); //運(yùn)行在主線程(大年夜哪里new就是哪個(gè)線程,也不必定是主線程service等) }
3、義務(wù)履行對(duì)象
package com.ferris.pool; import android.os.Handler; import android.os.Message; public class FerrisTask { private FerrisTaskListem taskListem; private Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { if(taskListem!=null){ taskListem.update(); } }; }; public FerrisTask(FerrisTaskListem taskListem) { this.taskListem = taskListem; } public void Execute(){ FerrisPoolManager.getInstance().addTask(new RunTask()); } public class RunTask implements Runnable { @Override public void run() { // TODO Auto-generated method stub if(taskListem!=null){ taskListem.get(); } Message message=Message.obtain(); handler.sendMessage(message); } } }
4、應(yīng)用辦法
FerrisTask ferrisTask = new FerrisTask(new FerrisTaskListem() { @Override public void update() { //主線程 // TODO Auto-generated method stub String name = Thread.currentThread().getName(); System.out.print(name); } @Override public void get() { //UI線程 // TODO Auto-generated method stub String name = Thread.currentThread().getName(); System.out.print(name); } }); ferrisTask.Execute();
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站維護(hù)
- 汽車報(bào)廢回收
- 保山小程序開(kāi)發(fā)
- 網(wǎng)站建設(shè)優(yōu)化
- 云南做網(wǎng)站
- 百度小程序開(kāi)發(fā)
- 報(bào)廢車回收管理軟件
- 云南網(wǎng)站建設(shè)哪家公司好
- 模版消息
- 云南網(wǎng)站建設(shè)哪家強(qiáng)
- 云南網(wǎng)站建設(shè)招商
- 生成海報(bào)
- 云南省城鄉(xiāng)建設(shè)廳網(wǎng)站
- 報(bào)廢車管理
- 昆明軟件定制
- 網(wǎng)站制作哪家好
- 網(wǎng)站建設(shè)首選公司
- 云南etc小程序
- 網(wǎng)站建設(shè)特性
- 百度快速排名
- 云南網(wǎng)站建設(shè)費(fèi)用
- 日歷組件
- 云南網(wǎng)站建設(shè)服務(wù)
- web開(kāi)發(fā)技術(shù)
- 云南建設(shè)廳官方網(wǎng)站
- 云南網(wǎng)站建設(shè)公司哪家好
- 小程序開(kāi)發(fā)費(fèi)用
- 云南網(wǎng)絡(luò)營(yíng)銷
- 搜索引擎排名
- 云南網(wǎng)站開(kāi)發(fā)