第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果按鈕空閑,如何啟動線程?

如果按鈕空閑,如何啟動線程?

DIEA 2023-03-31 15:30:17
我需要一個線程在按鈕空閑 3 秒后啟動,有沒有一種簡單的方法可以做到這一點?我正在構建一個計數(shù)器應用程序,按鈕觸發(fā)兩個計數(shù)器,總計數(shù)器和“點擊計數(shù)器”,點擊計數(shù)器有助于跟蹤值的實際變化,顯示用戶點擊了多少次,我需要它消失幾秒鐘后,用戶可以再次點擊。
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經(jīng)驗 獲得超5個贊

對于這樣的事情,我通常使用帶有Runnable 的處理程序,以便在 X用戶未執(zhí)行特定操作后執(zhí)行操作。milliseconds

首先,創(chuàng)建一個runnable和一個handler

final android.os.Handler handler = new android.os.Handler();

private Runnable runnable;

private final long DELAY = 3000; // how many milliseconds you want to wait

然后添加onClickListener:


myButton.setOnClickListener(new View.OnClickListener() {

? @Override

? public void onClick(View view) {? ? ? ??

? }

});

然后,在onClick事件內部,刪除callbacks并重新實例化,handler如下所示:


if(runnable != null) {

? // in this case the user already clicked once at least

? handler.removeCallbacks(runnable);

}


runnable = new Runnable() {

? @Override? ??

? public void run() {

? ? //this code will run when user isn't clicking for the time you set before.

? }

};

handler.postDelayed(runnable, DELAY);

最后結果:


final android.os.Handler handler = new android.os.Handler();

private Runnable runnable;

private final long DELAY = 3000; // how many milliseconds you want to wait



@Override

public void onCreate(Bundle savedInstanceState) {

? ? super.onCreate(savedInstanceState);


? ? // all your previous stuffs



? ? myButton.setOnClickListener(new View.OnClickListener() {

? ? ? @Override

? ? ? public void onClick(View view) {? ? ? ?

? ? ? ? if(runnable != null) {

? ? ? ? ? // in this case the user already clicked once at least

? ? ? ? ? handler.removeCallbacks(runnable);

? ? ? ? }


? ? ? ? runnable = new Runnable() {

? ? ? ? ? @Override? ??

? ? ? ? ? public void run() {

? ? ? ? ? ? //this code will run when user isn't clicking for the time you set before.

? ? ? ? ? }

? ? ? ? };

? ? ? ? handler.postDelayed(runnable, DELAY);?

? ? ? }

? ? });

}

我希望這會有所幫助,如有任何問題,請隨時提出


查看完整回答
反對 回復 2023-03-31
?
慕蓋茨4494581

TA貢獻1850條經(jīng)驗 獲得超11個贊

Handler 可能會在這種場景下工作,有 3000 毫秒的延遲。


new Handler().postDelayed(new Runnable() {

        @Override

        public void run() {

          // do action

        }

    }, 3000);


查看完整回答
反對 回復 2023-03-31
?
30秒到達戰(zhàn)場

TA貢獻1828條經(jīng)驗 獲得超6個贊

首先,您創(chuàng)建一個Timerwith a TimerTask(使用您的線程)并安排它在 3 秒后運行。


每次按下按鈕,您都會重置計時器。


public class MyClass{

    private Timer timer=new Timer()

    private TimerTask task=new TimerTask(){

        public void run(){

            //your action

        }

    };

    public void init(){

        timer.schedule(task,3000);

    }

    public void onButtonClick(){

        task.cancel();

        timer.schedule(task,3000);

    }

}


查看完整回答
反對 回復 2023-03-31
  • 3 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號