Android ApiDemos示例解析(40):App->Service->Local Service Controller

Local Service Controller 是將LocalService當作“Started”Service來使用,相對於”Bound” Service 來說,這種模式用法要簡單得多,LocalServiceActivities.Controller 啟動Local Service 之後就基本上不管LocalService瞭

[java] 
startService(new Intent(Controller.this, 
 LocalService.class)); 
startService(new Intent(Controller.this,
 LocalService.class));
LocalService可以選擇自己停止自己,本例是通過調用stopService來停止Service ,如果你在本例中啟動Service之後,沒有stopService ,這個Service將在後臺一直運行,即使你退出AppDemo或是啟動其它應用(屏幕上方會一直顯示一個三角)。而對於Local Service Binding來說,情況就不同,綁定Service之後,即使你沒有點擊“unbind Service ”按鈕,按“Back”鍵,Binding Activity退出時,Android系統會自動斷開與LocalService的綁定。屏幕上方Notification會自動消失。

此外本例LocalService 之所以稱為“Local” Service,除瞭上面提到的提供IBinder對象之間調用接口,隻允許同一Application的組件來調用外。LocalService 在AndroidManifest.xml中定義為:

<service android:name=”.app.LocalService” />

不含任何Intent-Filter,表示隻能通過Explicit 指定Service類,不同應用一般來說無法直接訪問這個類。

 
作者:mapdigit

 

 

發佈留言