編輯:關於Android編程
比較簡單,就3個類。
1、創建一個單例的線程池,用來執行異步任務
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、定義一個任務接口
package com.ferris.pool; public interface FerrisTaskListem { public void get(); //運行在線程裡 public void update(); //運行在主線程(從哪裡new就是哪個線程,也不一定是主線程service等) }
3、任務執行對象
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、使用方法
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();
適當的添加一些動畫效果,能夠獲得更好的用戶體驗,這次講講一些常見的動畫~如:透明動畫,漸變動畫等等。先看一下運行截圖:package com.vrinux.animoti
安卓手機輸入法彈出,消失會觸發window.onresize事件,我們一般的解決方法是獲取焦點,底部隱藏,失去焦點,底部菜單出現,但是,有些人會點擊這個按鈕收起鍵牌那麼,
ListView中的下拉刷新是非常常見的,也是經常使用的,看到有很多同學想要,那我就整理一下,供大家參考。那我就不解釋,直接上代碼了。這裡需要自己重寫一下ListView
本文實例為大家分享了Android實現搜索功能,並且需要顯示搜索的歷史記錄,供大家參考,具體內容如下效果圖:本案例實現起來很簡單,所以可以直接拿來嵌入項目中使用,涉及到的