欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Android異步任務(wù)代碼很簡(jiǎn)短,簡(jiǎn)單異步工具封裝,方便執(zhí) - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(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í)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 技術(shù)分享 >

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)案例查看更多