亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android提高之Service用法實例解析

2020-04-11 11:46:11
字體:
來源:轉載
供稿:網友

前面文章介紹了Activity以及Intent的使用,本文就來介紹Service。如果把Activity比喻為前臺程序,那么Service就是后臺程序,Service的整個生命周期都只會在后臺執行。Service跟Activity一樣也由Intent調用。在工程里想要添加一個Service,先新建繼承Service的類,然后到AndroidManifest.xml -> Application ->Application Nodes中的Service標簽中添加。

 Service要由Activity通過startService 或者 bindService來啟動,Intent負責傳遞參數。
 
 先貼出本文程序運行截圖如下:

本文主要講解Service的調用,以及其生命周期。

上圖是startService之后再stopService的Service狀態變化。

上圖是bindService之后再unbindService的Service狀態變化。

startService與bindService都可以啟動Service,那么它們之間有什么區別呢?它們兩者的區別就是使Service的周期改變。由startService啟動的Service必須要有stopService來結束Service,不調用stopService則會造成Activity結束了而Service還運行著。bindService啟動的Service可以由unbindService來結束,也可以在Activity結束之后(onDestroy)自動結束。

上圖是startService之后再Activity.finish()的Service狀態變化,Service還在跑著。

上圖是bindService之后再Activity.finish()的Service狀態變化,Service最后自動unbindService。

main.xml代碼如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnStartMyService" android:text="StartMyService"></Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnStopMyService" android:text="StopMyService"></Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnBindMyService" android:text="BindMyService"></Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnUnbindMyService" android:text="UnbindMyService"></Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnExit" android:text="退出程序"></Button></LinearLayout>

testService.java的源碼如下:

package com.testService;import android.app.Activity;import android.app.Service;import android.content.ComponentName;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.util.Log;import android.view.View;import android.widget.Button;public class testService extends Activity {  Button btnStartMyService,btnStopMyService,btnBindMyService,btnUnbindMyService,btnExit;  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    btnStartMyService=(Button)this.findViewById(R.id.btnStartMyService);    btnStartMyService.setOnClickListener(new ClickEvent());        btnStopMyService=(Button)this.findViewById(R.id.btnStopMyService);    btnStopMyService.setOnClickListener(new ClickEvent());        btnBindMyService=(Button)this.findViewById(R.id.btnBindMyService);    btnBindMyService.setOnClickListener(new ClickEvent());        btnUnbindMyService=(Button)this.findViewById(R.id.btnUnbindMyService);    btnUnbindMyService.setOnClickListener(new ClickEvent());         btnExit=(Button)this.findViewById(R.id.btnExit);    btnExit.setOnClickListener(new ClickEvent());  }  @Override  public void onDestroy()  {   super.onDestroy();   Log.e("Activity","onDestroy");  }    private ServiceConnection _connection = new ServiceConnection() {  @Override public void onServiceConnected(ComponentName arg0, IBinder arg1) {  // TODO Auto-generated method stub } @Override public void onServiceDisconnected(ComponentName name) {  // TODO Auto-generated method stub }   };   class ClickEvent implements View.OnClickListener{ @Override public void onClick(View v) {  Intent intent=new Intent(testService.this,MyService.class);  if(v==btnStartMyService){  testService.this.startService(intent);  }  else if(v==btnStopMyService){  testService.this.stopService(intent);  }  else if(v==btnBindMyService){  testService.this.bindService(intent, _connection, Service.BIND_AUTO_CREATE);  }  else if(v==btnUnbindMyService){  if(MyService.ServiceState=="onBind")//Service綁定了之后才能解綁   testService.this.unbindService(_connection);  }  else if(v==btnExit)  {  testService.this.finish();  }   }     }}

MyService.java的源碼如下:

package com.testService;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.util.Log;public class MyService extends Service { static public String ServiceState=""; @Override public IBinder onBind(Intent arg0) { Log.e("Service", "onBind"); ServiceState="onBind"; return null; } @Override public boolean onUnbind(Intent intent){ super.onUnbind(intent); Log.e("Service", "onUnbind"); ServiceState="onUnbind"; return false;  } @Override public void onCreate(){ super.onCreate(); Log.e("Service", "onCreate"); ServiceState="onCreate"; } @Override public void onDestroy(){ super.onDestroy(); Log.e("Service", "onDestroy"); ServiceState="onDestroy"; } @Override public void onStart(Intent intent,int startid){ super.onStart(intent, startid); Log.e("Service", "onStart"); ServiceState="onStart"; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美在线一区| 日韩免费看的电影电视剧大全| 国产午夜精品免费一区二区三区| 国产亚洲欧美日韩美女| 亚洲国产欧美一区二区三区同亚洲| 亚洲精品一区久久久久久| 韩国美女主播一区| 日韩av在线免费观看一区| 91精品国产综合久久男男| 91香蕉嫩草神马影院在线观看| 国产激情综合五月久久| 国产成+人+综合+亚洲欧美丁香花| 欧美极品少妇xxxxⅹ裸体艺术| 日韩动漫免费观看电视剧高清| 中文字幕在线视频日韩| 亚洲欧洲黄色网| 日韩黄色av网站| 亚洲一品av免费观看| 久久久久久久网站| 久久人91精品久久久久久不卡| 97视频在线观看播放| 欧美在线视频网站| 日本一区二区在线免费播放| 欧美激情视频三区| 日韩精品一区二区视频| 中文字幕一区日韩电影| 欧美日本精品在线| 国产91免费观看| 久久九九有精品国产23| 亚洲欧美日韩中文在线| 中文字幕日韩综合av| 国产美女久久精品| 中文字幕精品在线| 自拍视频国产精品| 亚洲精品有码在线| 欧美午夜精品久久久久久人妖| 亚洲色无码播放| 国产香蕉一区二区三区在线视频| 一区二区在线视频播放| 欧美激情一二区| 这里只有精品在线播放| 中文字幕亚洲无线码a| 欧美性极品xxxx娇小| 在线观看日韩av| 日韩av网站大全| 亚洲级视频在线观看免费1级| 久热精品视频在线观看| 亚洲第一视频网站| 成人福利网站在线观看| 日韩国产欧美区| 草民午夜欧美限制a级福利片| 国产日韩欧美在线| 国产精品video| 亚洲视频精品在线| 少妇高潮久久77777| 久久久日本电影| 久久国产精品电影| 日韩精品999| 热99精品里视频精品| 欧美午夜激情在线| 亚洲在线一区二区| 久久人人爽国产| 中文字幕在线看视频国产欧美| 国产欧美日韩高清| 久久精品电影网| 中文日韩电影网站| 国产在线精品成人一区二区三区| 国产精品免费观看在线| 亚洲高清久久久久久| 国产一区二区在线免费| 精品毛片网大全| 欧美精品www在线观看| 亚洲欧美国产精品| 国产精品自产拍在线观看| 日韩毛片中文字幕| 2018日韩中文字幕| 日韩美女免费视频| 国产主播喷水一区二区| 国产欧美一区二区三区久久| 国产suv精品一区二区| 亚洲图片在区色| 亚洲影影院av| 久久久在线视频| 一区二区三区视频免费在线观看| 午夜精品一区二区三区在线| 91精品在线播放| 日韩av日韩在线观看| 一区二区三区视频免费在线观看| 91精品国产色综合久久不卡98口| 亚洲视频在线观看网站| 97超视频免费观看| 成人黄色免费片| 日韩成人中文字幕| 日韩精品免费在线播放| 亚洲国产精品字幕| 欧美xxxx做受欧美.88| 久久久精品国产网站| 国产做受69高潮| 亚洲欧美国产精品专区久久| 久久福利视频网| 7m精品福利视频导航| 国产亚洲精品久久久久久| 777777777亚洲妇女| 亚洲日本欧美日韩高观看| 日韩在线免费视频观看| 亚洲第一男人天堂| 亚洲人成五月天| 日韩精品日韩在线观看| 欧美精品激情视频| 日韩欧美国产网站| 国产精品美腿一区在线看| 精品露脸国产偷人在视频| 日韩精品日韩在线观看| 精品在线观看国产| 亚洲福利视频久久| 91精品美女在线| 97超视频免费观看| 久久久成人精品视频| 国产精品旅馆在线| 欧美成人全部免费| 日本一本a高清免费不卡| 国产精品视频白浆免费视频| 国产成人精品一区二区三区| 欧美人与性动交| 日韩欧美中文免费| 亚洲自拍小视频| 欧美伦理91i| 欧美日韩亚洲一区二区三区| 亚洲一区二区免费| 亚洲大胆人体在线| 欧美性猛交xxxx| 欧美在线免费视频| 91最新国产视频| 国产精品成人观看视频国产奇米| 国产成人精品一区二区| 中文字幕精品一区二区精品| 国产成+人+综合+亚洲欧洲| 欧美一级大片视频| 国产精品一区二区久久精品| 国产精品人人做人人爽| 中文字幕欧美亚洲| 欧美亚洲在线观看| 亚洲高清免费观看高清完整版| 国产精品视频公开费视频| 欧美二区在线播放| 久久免费国产视频| 欧美在线观看网址综合| 秋霞成人午夜鲁丝一区二区三区| 欧美日韩成人免费| 亚洲人成啪啪网站| 日韩视频永久免费观看| 亚洲天堂男人天堂女人天堂| 国产一区二区黑人欧美xxxx| 久久综合伊人77777| 国产91久久婷婷一区二区| 欧美在线观看日本一区| 亚洲欧美中文在线视频| 国产亚洲人成a一在线v站| 久久精品亚洲热| 欧美专区国产专区| 日韩在线中文字| 国产精品中文字幕久久久| 91高清视频免费| 一本色道久久88综合日韩精品|