Thread 結(jié)合 Timer一起使用

首先笑跛,大家在開發(fā)的時(shí)候,有時(shí)候做一些耗時(shí)任務(wù)時(shí)聊品,難免會(huì)用到線程【Thread】,以免阻塞主線程飞蹂。但是,有時(shí)候杨刨,我們只希望這個(gè)在線程里面執(zhí)行的任務(wù)晤柄,不能太長(zhǎng),意思就是說妖胀,我需要在這個(gè)線程執(zhí)行一段時(shí)間后芥颈,無論有沒有完成我制定的任務(wù),都要講線程終止掉赚抡。這個(gè)時(shí)候又要用到【Timer】了爬坑。

變量聲明:

    private static final int TIME_LIMIT = 15000; // 登陸超時(shí)時(shí)間 15秒
    Timer timer;
    Thread thread;

 final Handler myHandler = new Handler() {
        @Override
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
                case TIME_OUT:
                    // 打斷線程
                    thread.interrupt();
                    if (dialog != null) {
                        dialog.dismiss();
                    }
                     // deal with what you should do after thread job is failed
                    break;
                case SUCCESS:
                    // 取消定時(shí)器
                    if (timer != null) {
                        timer.cancel();
                    }
                    if (dialog != null) {
                        dialog.dismiss();
                    }
                    // do what you want after thread job is successed
   
                    break;
                default:
                    break;
            }
        }
    };

具體方法:

 timer = new Timer();

 thread = new Thread(new Runnable() {
                @Override
                public void run() {   
                      if(doYourJob())              
                        //after work  is done...
                        Looper.prepare();
                        sendSuccessMsg();
                        Looper.loop();
                    } else {
                        //work is fail
                        errorDialog( "sorry work is not done !");
                    }
                }
            });

            thread.start();
            // 設(shè)定定時(shí)器
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    sendTimeOutMsg();
                }
            }, TIME_LIMIT);

補(bǔ)充:

    /**
     * 錯(cuò)誤對(duì)話框
     *
     * @param errorText
     */
    private void errorDialog(String errorText) {
        if (dialog != null) {
            dialog.dismiss();
        }
        AlertDialog.Builder builder = new AlertDialog.Builder(this); // 先得到構(gòu)造器
        builder.setTitle("提示"); // 設(shè)置標(biāo)題
        builder.setMessage(errorText); // 設(shè)置內(nèi)容
        builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { // 設(shè)置確定按鈕
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss(); // 關(guān)閉dialog
            }
        });
        // 參數(shù)都設(shè)置完成了,創(chuàng)建并顯示出來
        builder.create().show();
    }

    /**
     * // 向handler發(fā)送超時(shí)信息
     */
    private void sendTimeOutMsg() {
        Message timeOutMsg = new Message();
        timeOutMsg.what = TIME_OUT;
        myHandler.sendMessage(timeOutMsg);
    }
  /**
     * // 向handler成功信息
     */
  private void sendSuccessMsg() {
        Message timeOutMsg = new Message();
        timeOutMsg.what = SUCCESS;
        myHandler.sendMessage(timeOutMsg);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涂臣,一起剝皮案震驚了整個(gè)濱河市盾计,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赁遗,老刑警劉巖署辉,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岩四,居然都是意外死亡哭尝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門剖煌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來材鹦,“玉大人,你說我怎么就攤上這事耕姊⊥疤疲” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵茉兰,是天一觀的道長(zhǎng)尤泽。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么安吁? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任醉蚁,我火速辦了婚禮,結(jié)果婚禮上鬼店,老公的妹妹穿的比我還像新娘网棍。我一直安慰自己,他們只是感情好妇智,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布滥玷。 她就那樣靜靜地躺著,像睡著了一般巍棱。 火紅的嫁衣襯著肌膚如雪惑畴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天航徙,我揣著相機(jī)與錄音如贷,去河邊找鬼。 笑死到踏,一個(gè)胖子當(dāng)著我的面吹牛杠袱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窝稿,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼楣富,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了伴榔?” 一聲冷哼從身側(cè)響起纹蝴,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踪少,沒想到半個(gè)月后塘安,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡援奢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年耙旦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萝究。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锉罐,靈堂內(nèi)的尸體忽然破棺而出帆竹,到底是詐尸還是另有隱情,我是刑警寧澤脓规,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布栽连,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秒紧。R本人自食惡果不足惜绢陌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望熔恢。 院中可真熱鬧脐湾,春花似錦、人聲如沸叙淌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹰霍。三九已至闻鉴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茂洒,已是汗流浹背孟岛。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留督勺,地道東北人渠羞。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像玷氏,于是被迫代替她去往敵國(guó)和親堵未。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 從哪說起呢盏触? 單純講多線程編程真的不知道從哪下嘴渗蟹。。 不如我直接引用一個(gè)最簡(jiǎn)單的問題赞辩,以這個(gè)作為切入點(diǎn)好了 在ma...
    Mr_Baymax閱讀 2,739評(píng)論 1 17
  • 目錄(GCD): 關(guān)鍵詞 混淆點(diǎn) 場(chǎng)景應(yīng)用 總結(jié) 1. 關(guān)鍵詞 線程概念: 獨(dú)立執(zhí)行的代碼段雌芽,一個(gè)線程同時(shí)間只能執(zhí)...
    Ryan___閱讀 1,264評(píng)論 0 3
  • Object C中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼辨嗽,方法是什么世落?如果想延時(shí)執(zhí)行代碼、方法又是什么糟需? 1...
    AlanGe閱讀 1,721評(píng)論 0 17
  • 下面是我自己收集整理的Java線程相關(guān)的面試題屉佳,可以用它來好好準(zhǔn)備面試。 參考文檔:-《Java核心技術(shù) 卷一》-...
    阿呆變Geek閱讀 14,763評(píng)論 14 507
  • 原文地址 http://www.cnblogs.com/kenshincui/p/3983982.html 大家都...
    怎樣m閱讀 1,266評(píng)論 0 1