使用Service

在后臺(tái)谬莹,做一些事物的處理陋率,socket,長(zhǎng)鏈接教翩,推送的長(zhǎng)鏈接等沛简,需要用到service齐鲤。
創(chuàng)建Service:
public class MyService extends Service {

private boolean serviceRunning = false;
public MyService() {
}

@Override
public IBinder onBind(Intent intent) {
    return new Binder();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//onStartCommand在外界執(zhí)行了startService的時(shí)候會(huì)執(zhí)行。

    new Thread(){
        @Override
        public void run() {
            super.run();
            while (true){
                System.out.println("服務(wù)正在運(yùn)行椒楣。给郊。。捧灰。淆九。");

                try{
                    sleep(1000);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
            }

        }
    }.start();
    System.out.println("onStartCommand");

    return super.onStartCommand(intent, flags, startId);
}
   //Service的生命周期,一個(gè)onCreate和一個(gè)onDestroy。
@Override
public void onCreate() {
    super.onCreate();

    System.out.println("Service Create");
    serviceRunning = true;
    new Thread(){
        @Override
        public void run() {
            super.run();
            while (serviceRunning){
                System.out.println("服務(wù)正在運(yùn)行吩屹。跪另。。煤搜。。");

                try{
                    sleep(1000);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
            }

        }
    }.start();
}

@Override
public void onDestroy() {
    super.onDestroy();
    System.out.println("Service Destroy");
    serviceRunning = false;
}

}
在MainActivity中對(duì)Service進(jìn)行操作:
public class MainActivity extends AppCompatActivity implements View.OnClickListener, ServiceConnection {

private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    intent = new Intent(MainActivity.this,MyService.class);
    findViewById(R.id.btnStartService).setOnClickListener(this);
    findViewById(R.id.btnStopService).setOnClickListener(this);
    findViewById(R.id.btnBindService).setOnClickListener(this);
    findViewById(R.id.btnUnbindService).setOnClickListener(this);
    //多個(gè)事件監(jiān)聽器唧席,可以讓Class實(shí)現(xiàn)onClickListener接口擦盾,這樣寫起來更直觀簡(jiǎn)潔。
}


@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.btnStartService:
            startService(intent);
            break;
        case R.id.btnStopService:
            stopService(intent);
            break;
        case R.id.btnBindService:
            bindService(intent,this, Context.BIND_AUTO_CREATE);
            break;
        case R.id.btnUnbindService:
            unbindService(this);
            break;

    }

}

//使用BindService的時(shí)候需要實(shí)現(xiàn)ServiceConnection淌哟,以下兩個(gè)方法迹卢。
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
    System.out.println("Service Connected");
}

@Override
public void onServiceDisconnected(ComponentName name) {

}

}
也可以使用綁定服務(wù)的方式來啟動(dòng)服務(wù)。bindService和unBindService就可以用來綁定和解綁服務(wù)徒仓。
如果同時(shí)啟動(dòng)和綁定服務(wù)腐碱,如果要停止,就需要同時(shí)停止和解綁服務(wù)掉弛。
當(dāng)你在某一個(gè)Activity里面綁定了服務(wù)症见,當(dāng)你退出這個(gè)Activity的時(shí)候就會(huì)destroy這個(gè)服務(wù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末殃饿,一起剝皮案震驚了整個(gè)濱河市谋作,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乎芳,老刑警劉巖遵蚜,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奈惑,居然都是意外死亡吭净,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門肴甸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寂殉,“玉大人,你說我怎么就攤上這事雷滋〔怀牛” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵晤斩,是天一觀的道長(zhǎng)焕檬。 經(jīng)常有香客問我,道長(zhǎng)澳泵,這世上最難降的妖魔是什么实愚? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上腊敲,老公的妹妹穿的比我還像新娘击喂。我一直安慰自己,他們只是感情好碰辅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布懂昂。 她就那樣靜靜地躺著,像睡著了一般没宾。 火紅的嫁衣襯著肌膚如雪凌彬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天循衰,我揣著相機(jī)與錄音铲敛,去河邊找鬼。 笑死会钝,一個(gè)胖子當(dāng)著我的面吹牛伐蒋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播迁酸,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼先鱼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了胁出?” 一聲冷哼從身側(cè)響起型型,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎全蝶,沒想到半個(gè)月后闹蒜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抑淫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年绷落,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片始苇。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡砌烁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出催式,到底是詐尸還是另有隱情函喉,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布荣月,位于F島的核電站管呵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏哺窄。R本人自食惡果不足惜捐下,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一账锹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坷襟,春花似錦奸柬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至档叔,卻和暖如春懂从,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹲蒲。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侵贵,地道東北人届搁。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像窍育,于是被迫代替她去往敵國(guó)和親卡睦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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

  • 原文地址:Android Service完全解析,關(guān)于服務(wù)你所需知道的一切(上) 相信大多數(shù)朋友對(duì)Service這...
    AiPuff閱讀 4,129評(píng)論 11 98
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理乞娄,服務(wù)發(fā)現(xiàn)瞬逊,斷路器,智...
    卡卡羅2017閱讀 134,638評(píng)論 18 139
  • 什么是Service Service是一個(gè)應(yīng)用組件, 它用來在后臺(tái)完成一個(gè)時(shí)間跨度比較大的工作且沒有關(guān)聯(lián)任何界面 ...
    Mr丶sorrow閱讀 670評(píng)論 0 1
  • 上上個(gè)星期去益陽和正在創(chuàng)業(yè)的同學(xué)吃飯聊天仪或,他推薦了一部電視劇——前段時(shí)間熱播的《人民的名義》确镊。剛開始我擺手拒絕,打...
    緩步向前閱讀 294評(píng)論 0 0
  • 無 緣 掖 身 衾 撩 捱 心 扉 湮 拈 花 迦 藍(lán) 靳 ...
    拈花悟旨閱讀 307評(píng)論 0 2