日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 管理类,android 线程管理类

發布時間:2023/12/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 管理类,android 线程管理类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 延時任務以及取消延時的應用場景:實時搜索,文字內容變化時候不發送請求,當停止變化指定時間后再發送請求

2. 使用方法:

// 回到主線程

MainThreadHelper.runOnUIthread(new Runnable() {

@Override

public void run() {

// pushActivity();

}

});

// 延時調用以及取消延遲

MainThreadHelper.runDelayedCall(300, new MainThreadHelper.DelayedCallListener() {

@Override

public void onClick() {

// animalHiddenView();

}

});

3. 實現類代碼:

import android.os.Handler;

import android.os.Looper;

import android.util.Log;

/**

* Created by jing on 17/5/19.

* 線程管理~

*/

public class MainThreadHelper{

private MainThreadHelper(){ super(); }

// 單利模式

private static MainThreadHelper mainThreadHelper = new MainThreadHelper();

/**

* 回到在主線程

**/

private MainThreadComplate mainThreadComplate = new MainThreadComplate();

public static void runOnUIthread(Runnable runnable){

mainThreadHelper.mainThreadComplate.runOnUIthread(runnable);

}

/**

* 打印當前線程

* */

public static void logCurrentThread(){

String string = Thread.currentThread().toString();

Log.d("當前線程",string);

}

/** 延時任務以及取消延時 */

private DelayedCallComplate delayedCallComplate = new DelayedCallComplate();

public interface DelayedCallListener{

void onClick();

}

public static void runDelayedCall(long delayMillis,DelayedCallListener listener){

mainThreadHelper.delayedCallComplate.runDelayedCall(delayMillis,listener);

}

}

/** 主線程相關類 */

class MainThreadComplate{

private Handler handler = new Handler(Looper.getMainLooper());

/** 回到在主線程 */

public void runOnUIthread(Runnable runnable){

if (Looper.myLooper() == Looper.getMainLooper()){

runnable.run();

return;

}

handler.post(runnable);

}

}

/** 延時任務以及取消延時類 */

class DelayedCallComplate implements Runnable{

private MainThreadHelper.DelayedCallListener listener = null;

private Handler handler = new Handler(Looper.getMainLooper());

public void runDelayedCall(long delayMillis,MainThreadHelper.DelayedCallListener listener){

this.listener = listener;

handler.removeCallbacks(this);

handler.postDelayed(this,delayMillis);

}

@Override

public void run() {

if (listener == null) return;

listener.onClick();

}

}

總結

以上是生活随笔為你收集整理的android 管理类,android 线程管理类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。