真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

安卓中Service組件怎么用-創(chuàng)新互聯(lián)

這篇文章主要介紹安卓中Service組件怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),買鏈接,一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。

1:Service的創(chuàng)建

Service就是服務(wù)的意思,它的特點(diǎn)就是當(dāng)你開啟服務(wù)以后即使你關(guān)閉app它也在運(yùn)行,直到調(diào)用停止服務(wù)的方法。典型的用法就是音樂播放器。

Service的創(chuàng)建同Activity一樣最好不要自己繼承寫類。創(chuàng)建方法為自己項(xiàng)目右鍵->new->other->Android Object->然后一直下一步就可以了(中間有取類名可以自行更改)

2:Service的生命周期

安卓中Service組件怎么用

Service的生命周期有2種一種是開啟服務(wù)和綁定服務(wù)。大家看上圖就可以一目了然。

3:啟動(dòng)和綁定服務(wù)以及關(guān)閉服務(wù)

首先是第一種啟動(dòng)服務(wù),使用一個(gè)按鈕并在其監(jiān)聽事件里啟動(dòng)服務(wù),代碼如下


//第一個(gè)按鍵啟動(dòng)服務(wù)
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        service = new Intent();
        //設(shè)置跳轉(zhuǎn)到的服務(wù)
        service.setClass(MainActivity.this, MyService.class);
        //啟動(dòng)服務(wù)
        startService(service );
    }
});
//第二個(gè)按鍵關(guān)閉服務(wù)
findViewById(R.id.button2).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        stopService(service);
    }
});

當(dāng)啟動(dòng)服務(wù)以后如果在啟動(dòng)只會(huì)調(diào)用onStartCommand方法,不會(huì)再新建一個(gè)服務(wù)對象(構(gòu)造方法只執(zhí)行一次)。如下圖所示

安卓中Service組件怎么用正常的啟動(dòng)結(jié)束服務(wù)打的日志圖如下(被水印遮住了蛋疼。。我源代碼會(huì)上傳大家可以自己驗(yàn)證)

安卓中Service組件怎么用

然后是第二種綁定服務(wù),方法跟上面類似,代碼如下

//第三個(gè)按鍵綁定服務(wù)
findViewById(R.id.button3).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        service = new Intent();
        //設(shè)置跳轉(zhuǎn)到的服務(wù)
            service.setClass(MainActivity.this, MyService.class);
            //啟動(dòng)服務(wù)
        bindService(service, null, Context.BIND_AUTO_CREATE);
    }
});
//第四個(gè)按鍵解綁服務(wù)
findViewById(R.id.button4).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        unbindService(null);
    }
});

綁定服務(wù)方法的運(yùn)行順序如下(如生命周期所示)

安卓中Service組件怎么用

4:動(dòng)態(tài)的訪問Service的方法

剛才我啟動(dòng)綁定服務(wù)方法時(shí)候中間那個(gè)參數(shù)為null,現(xiàn)在我們來為它傳入一個(gè)參數(shù)(由于要傳入的對象是一個(gè)接口所以必須重寫它的方法)

private ServiceConnection conn = new ServiceConnection() {
                                                                                                                                                                                                                           
    @Override
    public void onServiceDisconnected(ComponentName name) {
                                                                                                                                                                                                                               
    }
                                                                                                                                                                                                                           
    @Override
    public void onServiceConnected(ComponentName name, IBinder service)   {
                                                                                                                                                                                                                         
    }
};
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
                                                                                                                                                                                                                             
    @Override
    public void onClick(View v) {
        Intent service = new Intent(MainActivity.this, MyService.class);
        bindService(service , conn , Context.BIND_AUTO_CREATE);
    }
});

回到Service的代碼頁面,在Service中寫一個(gè)play方法并打日志以便我們觀看結(jié)果,然后寫一個(gè)內(nèi)部類繼承binder并寫一個(gè)方法來調(diào)用Service的play()方法,最后在onbind方法返回一個(gè)binder對象

@Override
public IBinder onBind(Intent intent) {
    return new MyBinder();
}
                                                                                                                           
class MyBinder extends Binder
{
    public void start()
    {
        play();
    }
}
                                                                                                                           
public void play()
{
    Log.e("MyService", "play()");
}

在回到Activity代碼,在conn接口中的onServiceConnected()方法中獲取Mybinder對象,在調(diào)用對象的start()方法,代碼如下

private ServiceConnection conn = new ServiceConnection() {
                                                         
    @Override
    public void onServiceDisconnected(ComponentName name) {
                                                             
    }
                                                         
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        //獲取Service中的Mybinder的對象
        MyBinder binder = (MyBinder) service;
        //調(diào)用Mybinder中的方法,里面就包含了Service中的方法
        binder.start();
                                                         
};

大功告成。日志打印結(jié)果如下


安卓中Service組件怎么用

以上是“安卓中Service組件怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前文章:安卓中Service組件怎么用-創(chuàng)新互聯(lián)
文章來源:http://weahome.cn/article/djohoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部