AsyncTask,intentService,HandlerThread細(xì)節(jié)

AsyncTask 4.0 以后默認(rèn)串行鹃操,為了避免并行錯(cuò)誤。在3.0以上可以通過(guò)executeOnExecutor()抚垃;

HandlerThread

HandlerThread 繼承Thread, 內(nèi)部實(shí)現(xiàn):run()方法中通過(guò)Looper.prepare()創(chuàng)建隊(duì)列喷楣,通過(guò)Looper.loop()開(kāi)啟消息循環(huán),這樣就允許在HandlerThread 中創(chuàng)建Handler了鹤树。

new Handler(mHandlerThread.getLooper); Handler的傳入Looper創(chuàng)建方法铣焊。

//示例代碼:
private void initBackThread()
    {
        mCheckMsgThread = new HandlerThread("check-message-coming");
        mCheckMsgThread.start();
        mCheckMsgHandler = new Handler(mCheckMsgThread.getLooper())
        {
            @Override
            public void handleMessage(Message msg)
            {
                //請(qǐng)求網(wǎng)絡(luò)等耗時(shí)操作
                checkForUpdate();
                if (isUpdateInfo)
                {
                  //間隔1s重復(fù)調(diào)用HandlerThread
                mCheckMsgHandler.sendEmptyMessageDelayed(MSG_UPDATE_INFO, 1000);
                }
            }
        };
    }
private void checkForUpdate()
    {
        try
        {
            //模擬耗時(shí)
            Thread.sleep(1000);
            mHandler.post(new Runnable()
            {
                @Override
                public void run()
                {
                    String result = "實(shí)時(shí)更新中,當(dāng)前大盤指數(shù):<font color='red'>%d</font>";
                    result = String.format(result, (int) (Math.random() * 3000 + 1000));
                    mTvServiceInfo.setText(Html.fromHtml(result));
                }
            });

        } catch (InterruptedException e)
        {
            e.printStackTrace();
        }

    }

HandlerThread鴻洋解析

IntentService
內(nèi)部維護(hù)了一個(gè)HandlerThread 和Handler 魂迄。onStartCommand()的時(shí)候會(huì)mServiceHandler.sendMessage(msg)添加到messageQueue中粗截,說(shuō)明沒(méi)調(diào)用一次就會(huì)添加一次。

private final class ServiceHandler extends Handler{
    public ServiceHandler(Looper looper){
        super(looper);
    }
  @Override
     public void handleMessage(Message msg){
        onHandleIntent((Intent)msg.obj);  // 需要用戶自行復(fù)寫處理邏輯
        stopSelf(msg.arg1); // 可以說(shuō)明IntentService當(dāng)任務(wù)處理完成后會(huì)自動(dòng)銷毀
    }
}
  public class LocalIntentService extends IntentService{
      private static final String TAG="LOCALINTENTSERVICE";
      public LocalIntentSercie(){
        super(TAG);
      }  
      @Override
      protected void onHandleIntent(Intent intent){
         //任務(wù)邏輯
         SystemClock.sleep(3000);
    }    
  
      @Override
      public void onDestory(){
        super.onDestory();  
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捣炬,一起剝皮案震驚了整個(gè)濱河市熊昌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湿酸,老刑警劉巖婿屹,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異推溃,居然都是意外死亡昂利,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門铁坎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜂奸,“玉大人,你說(shuō)我怎么就攤上這事硬萍±┧” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵朴乖,是天一觀的道長(zhǎng)祖屏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)买羞,這世上最難降的妖魔是什么袁勺? 我笑而不...
    開(kāi)封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮畜普,結(jié)果婚禮上期丰,老公的妹妹穿的比我還像新娘。我一直安慰自己吃挑,他們只是感情好钝荡,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著儒鹿,像睡著了一般化撕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上约炎,一...
    開(kāi)封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天植阴,我揣著相機(jī)與錄音,去河邊找鬼圾浅。 笑死掠手,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狸捕。 我是一名探鬼主播喷鸽,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼灸拍!你這毒婦竟也來(lái)了做祝?” 一聲冷哼從身側(cè)響起砾省,我...
    開(kāi)封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎混槐,沒(méi)想到半個(gè)月后编兄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡声登,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年狠鸳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悯嗓。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡件舵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脯厨,到底是詐尸還是另有隱情铅祸,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布俄认,位于F島的核電站个少,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏眯杏。R本人自食惡果不足惜夜焦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岂贩。 院中可真熱鬧茫经,春花似錦、人聲如沸萎津。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锉屈。三九已至荤傲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颈渊,已是汗流浹背遂黍。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俊嗽,地道東北人雾家。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绍豁,于是被迫代替她去往敵國(guó)和親芯咧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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