編輯:關於Android編程
本文實例講述了Android Service控件用法。分享給大家供大家參考,具體如下:
1、Service是一個應用程序的組件
2、Service沒有圖形化界面
3、用來處理耗時比較長的功能(下載、播放MP3)
4、更新ContentProvider、Intent以及系統的啟動
Servcie不是一個單獨的進程,不是一個線程
定義一個Service比較簡單,只要繼承Service類,實現其生命周期的方法即可。一個定義好的Service必須在AndroidManifest.xml文件中通過<service>聲明才能使用
<service android:name="MyService"> <intent-filter> <action android:name="hb.com.MYSERVICE"/> </intent-filter> </service>
備注:MyService一定要是繼承了Service類的,並且名稱和類名是一致的
action的名稱是自定義的,只要在bindService或者操作Intent的時候就能夠被捕獲
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接口作為參數,所以定義了這個變量,目的是為了實現裡面的兩個方法 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); //先調用MyService的onCreate()方法,然後調用onBind()方法,最後調用onServiceConnected()方法 //因此IBinder返回的值就是通過onBind()方法返回的對象,定義getMyService()方法是為了得到MyService對象,用戶在這個類中添加自己需要的一些方法,這樣可以做一些邏輯處理 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){ //取消綁定事件,會調用MyService的onUnbind()方法,但是不會調用onServiceDisconnected()這個方法,原因不明 unbindService(conn); flag = false; } } }); } }
更多關於Android相關內容感興趣的讀者可查看本站專題:《Android文件操作技巧匯總》、《Android編程開發之SD卡操作方法匯總》、《Android開發入門與進階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
繪制曲線類:public class BaseFundChartView extends View { Paint linePaint; Paint text
現在大部分使用的都是SVN,也有一部分遷移了Git,雖然挺好的,不過還有其它很多版本控制的工具,並沒有誰最好用,最重要的是適合自己的公司與團隊,效率和團隊是成正比了,重要
本文主要為大家分享了Android實現搜索功能,並且可以實時顯示搜索的歷史記錄,根據輸入的內容去模糊查詢,供大家參考,界面圖如下。 本案例實現起來也非常的簡單,
Preference主要實現一些配置數據,一些我們上次點擊選擇的內容,我們希望在下次應用調起的時候依然有效,無須用戶再一次進行配置或選擇。Android提供