最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Service控件用法實(shí)例分析

 更新時(shí)間:2016年06月23日 11:57:23   作者:hbiao68  
這篇文章主要介紹了Android Service控件用法,較為詳細(xì)的分析了Service控件的功能、定義、使用方法與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Android Service控件用法。分享給大家供大家參考,具體如下:

1、Service是一個(gè)應(yīng)用程序的組件
2、Service沒(méi)有圖形化界面
3、用來(lái)處理耗時(shí)比較長(zhǎng)的功能(下載、播放MP3)
4、更新ContentProvider、Intent以及系統(tǒng)的啟動(dòng)

Servcie不是一個(gè)單獨(dú)的進(jìn)程,不是一個(gè)線程

定義一個(gè)Service比較簡(jiǎn)單,只要繼承Service類(lèi),實(shí)現(xiàn)其生命周期的方法即可。一個(gè)定義好的Service必須在AndroidManifest.xml文件中通過(guò)<service>聲明才能使用

<service android:name="MyService">
  <intent-filter>
    <action android:name="hb.com.MYSERVICE"/>
  </intent-filter>
</service>

備注:MyService一定要是繼承了Service類(lèi)的,并且名稱(chēng)和類(lèi)名是一致的

action的名稱(chēng)是自定義的,只要在bindService或者操作Intent的時(shí)候就能夠被捕獲

public class MyService extends Service {
  public class MyBinder extends Binder{
    public MyService getMyService(){
      return MyService.this;
    }
  }
  public void test(){
    System.out.println("test");
  }
  @Override
  public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    System.out.println("onBind");
    return new MyBinder();
  }
  @Override
  public void onCreate() {
    // TODO Auto-generated method stub
    System.out.println("onCreate");
    super.onCreate();
  }
  @Override
  public boolean onUnbind(Intent intent) {
    System.out.println("I am unbind");
    return super.onUnbind(intent);
  }
}

public class MainActivity extends Activity {
  private static final String MYSERVICE = "hb.com.MYSERVICE";
  private boolean flag = false;
  //bindService()方法需要ServiceConnection接口作為參數(shù),所以定義了這個(gè)變量,目的是為了實(shí)現(xiàn)里面的兩個(gè)方法
  ServiceConnection conn = new ServiceConnection() {
    @Override
    public void onServiceDisconnected(ComponentName name) {
      System.out.println("onServiceDisconnected");
    }
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
      System.out.println("onServiceConnected");
      MyBinder myBinder = (MyBinder)service;
      MyService myService = myBinder.getMyService();
      myService.test();
    }
  };
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    findViewById(R.id.start).setOnClickListener(new Button.OnClickListener(){
      @Override
      public void onClick(View v) {
        Intent intent = new Intent();
        intent.setAction(MYSERVICE);
        //先調(diào)用MyService的onCreate()方法,然后調(diào)用onBind()方法,最后調(diào)用onServiceConnected()方法
        //因此IBinder返回的值就是通過(guò)onBind()方法返回的對(duì)象,定義getMyService()方法是為了得到MyService對(duì)象,用戶(hù)在這個(gè)類(lèi)中添加自己需要的一些方法,這樣可以做一些邏輯處理
        bindService(intent, conn, Service.BIND_AUTO_CREATE);
        flag = true;
      }
    });
    findViewById(R.id.stop).setOnClickListener(new Button.OnClickListener(){
      @Override
      public void onClick(View v) {
        if(flag){
          //取消綁定事件,會(huì)調(diào)用MyService的onUnbind()方法,但是不會(huì)調(diào)用onServiceDisconnected()這個(gè)方法,原因不明
          unbindService(conn);
          flag = false;
        }
      }
    });
  }
}

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android文件操作技巧匯總》、《Android編程開(kāi)發(fā)之SD卡操作方法匯總》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

西林县| 北宁市| 平安县| 东乡族自治县| 巴彦淖尔市| 西平县| 哈尔滨市| 慈利县| 虹口区| 宁晋县| 灵台县| 武平县| 鄄城县| 绍兴市| 彭水| 平果县| 定西市| 乐陵市| 临夏市| 射阳县| 罗江县| 长阳| 靖远县| 阳新县| 资中县| 承德县| 库尔勒市| 兴海县| 阳西县| 桃源县| 城步| 海原县| 印江| 大埔县| 孝昌县| 榆林市| 祁阳县| 宁安市| 金平| 虹口区| 嵩明县|