Android Service控件用法實(shí)例分析
本文實(shí)例講述了Android Service控件用法。分享給大家供大家參考,具體如下:
1、Service是一個(gè)應(yīng)用程序的組件
2、Service沒有圖形化界面
3、用來處理耗時(shí)比較長的功能(下載、播放MP3)
4、更新ContentProvider、Intent以及系統(tǒng)的啟動(dòng)
Servcie不是一個(gè)單獨(dú)的進(jìn)程,不是一個(gè)線程
定義一個(gè)Service比較簡單,只要繼承Service類,實(shí)現(xiàn)其生命周期的方法即可。一個(gè)定義好的Service必須在AndroidManifest.xml文件中通過<service>聲明才能使用
<service android:name="MyService">
<intent-filter>
<action android:name="hb.com.MYSERVICE"/>
</intent-filter>
</service>
備注:MyService一定要是繼承了Service類的,并且名稱和類名是一致的
action的名稱是自定義的,只要在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返回的值就是通過onBind()方法返回的對象,定義getMyService()方法是為了得到MyService對象,用戶在這個(gè)類中添加自己需要的一些方法,這樣可以做一些邏輯處理
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)容感興趣的讀者可查看本站專題:《Android文件操作技巧匯總》、《Android編程開發(fā)之SD卡操作方法匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
- 淺談Service Manager成為Android進(jìn)程間通信(IPC)機(jī)制Binder守護(hù)進(jìn)程之路
- Android基于Service的音樂播放器
- Android實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)Service或app的方法
- Android使用Messenger實(shí)現(xiàn)service與activity交互
- 深入剖析Android系統(tǒng)中Service和IntentService的區(qū)別
- 詳解Android中Service服務(wù)的基礎(chǔ)知識及編寫方法
- Android實(shí)現(xiàn)Activity、Service與Broadcaster三大組件之間互相調(diào)用的方法詳解
- Android Service中方法使用詳細(xì)介紹
相關(guān)文章
Android學(xué)習(xí)筆記45之gson解析json
JSON即JavaScript Object Natation,是一種輕量級的數(shù)據(jù)交換格式,采用完全獨(dú)立于語言的文本格式,為Web開發(fā)提供了一種理想的數(shù)據(jù)交換格式。通過本篇文章給大家介紹Android學(xué)習(xí)筆記45之gson解析json的相關(guān)內(nèi)容,對android gson解析json相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2015-12-12
Android實(shí)現(xiàn) EditText輸入手機(jī)號空格功能
這篇文章主要介紹了Android實(shí)現(xiàn) EditText輸入手機(jī)號空格功能,實(shí)現(xiàn)思路是要重寫TextWatcher,每次EditText內(nèi)容變化,都判斷內(nèi)容是否符合要求,具體實(shí)例代碼大家參考下本文2018-02-02
Android實(shí)現(xiàn)歡迎界面停留3秒效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)歡迎界面停留3秒效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
Android Easeui 3.0 即時(shí)通訊的問題匯總
這篇文章主要介紹了Android Easeui 3.0 即時(shí)通訊的問題匯總的相關(guān)資料,需要的朋友可以參考下2016-09-09
Android 實(shí)例開發(fā)一個(gè)學(xué)生管理系統(tǒng)流程詳解
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)學(xué)生管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
android實(shí)現(xiàn)自動(dòng)發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)自動(dòng)發(fā)送郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07

