/*** 在主线程中 执行代码** @param runnable*/public static void runOnUiThread(Runnable runnable) {// 如果在主线程中运行 直接运行 如果没有在 提交一个handlerif (isRunUIThread()) {runnable.run();} else {executeTask(runnable);}}/*** 可以执行一个任务** @param runnable*/public static void executeTask(Runnable runnable) {getHandlder().post(runnable);}/*** 延时执行的异步任务** @param runnable* @param delayMillis*/public static void executeDelay(Runnable runnable, long delayMillis) {getHandlder().postDelayed(runnable, delayMillis);}private static Handler getHandlder() {return MyApplication.getHandler();}/*** 判断程序是否在主线程当中运行** @return*/public static boolean isRunUIThread() {// myPid 当前的进程 myUid 当前的用户 myTid 当前的一个线程return android.os.Process.myTid() == getMainThreadId();}private static int getMainThreadId() {return MyApplication.getMainThreadId();}
// 实际上和handler一样 执行完上面的方法 把接下来的代码提交到主线程来执行UIUtiles.runOnUiThread(new Runnable() {@Overridepublic void run() {showPage();}});
/*** 取消异步任务** @param autoRunningTask*/public static void cancelTask(Runnable r) {getHandlder().removeCallbacks(r);}
@Overridepublic void run() {//取消之前的任务UIUtiles.cancelTask(this);int currentItem = viewPager.getCurrentItem();currentItem++;// true 平滑的滑动到指定条目viewPager.setCurrentItem(currentItem, true);// this就是执行当前的任务 这是一个递归的过程UIUtiles.executeDelay(this, delayMillis);}
1万+



被折叠的 条评论
为什么被折叠?



