當前位置:首頁 » 安卓系統 » android綁定service

android綁定service

發布時間: 2022-08-05 07:58:29

Ⅰ android 如何讓service不在主線程中運行

調用者與服務綁定在一起就可以讓service不在主線程中運行。安卓是一種基於Linux內核的自由及開放源代碼的操作系統。

主要使用於移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。

系統信息

Android一詞的本義指機器人,同時也是Google於2007年11月5日宣布的基於Linux平台的開源手機操作系統的名稱,該平台由操作系統、中間件、用戶界面和應用軟體組成。Android一詞最早出現於法國作家利爾亞當在1886年發表的科幻小說未來夏娃中。

他將外表像人的機器起名為Android。Android的Logo是由Ascender公司設計的,誕生於2010年,其設計靈感源於男女廁所門上的圖形符號,於是布洛克繪制了一個簡單的機器人,它的軀干就像錫罐的形狀,頭上還有兩根天線,Android小機器人便誕生了。

其中的文字使用了Ascender公司專門製作的稱之為Droid的字體。Android是一個全身綠色的機器人,綠色也是Android的標志。

Ⅱ android 一個service可以和多個activity綁定嗎

是可以的

Ⅲ android service有什麼用

Service是Android系統中的四大組件之一,它是一種長生命周期的,沒有可視化界面,運行於後台的一種服務程序。如果service是被開啟的,那麼它的活動生命周期和整個生命周期一同結束。如果service是被綁定的,它們它的活動生命周期是在onUnbind()方法返回後結束。

service積極活動的生命時間(active lifetime)是從onStartCommand()或onBind()被調用開始,它們各自處理由startService()或bindService()方法傳過來的Intent對象。

(3)android綁定service擴展閱讀

service整體的生命時間是從onCreate()被調用開始,到onDestroy()方法返回為止。和activity一樣,service在onCreate()中進行它的初始化工作,在onDestroy()中釋放殘留的資源。

比如,一個音樂播放service可以在onCreate()中創建播放音樂的線程,在onDestory()中停止這個線程。onCreate()和onDestroy()會被所有的service調用,不論service是通過startService()還是bindService()建立。

Ⅳ Android Service 為什麼要綁定服務 僅僅是因為要獲取服務中的方法嗎

Android中Service是運行在後台的東西,級別與activity一樣。

既然說service是運行在後台的服務,那麼它就是不可見的,沒有界面的東西。

你可以啟動一個服務Service來播放音樂,或者記錄你地理信息位置的改變,或者啟動一個服務來運行並一直監聽某種動作。

Service和其他組件一樣,都是運行在主線程中,因此不能用它來做耗時的請求或者動作。你可以在服務中開一一個線程,在線程中做耗時動作。


服務一般分為兩種:

1:本地服務,Local Service 用於應用程序內部。在Service可以調用Context.startService()啟動,調用Context.stopService()結束。在內部可以調用Service.stopSelf() 或 Service.stopSelfResult()來自己停止。無論調用了多少次startService(),都只需調用一次stopService()來停止。

2:遠程服務, Remote Service 用於android系統內部的應用程序之間。可以定義介面並把介面暴露出來,以便其他應用進行操作。客戶端建立到服務對象的連接,並通過那個連接來調用服務。調用Context.bindService()方法建立連接,並啟動,以調用 Context.unbindService()關閉連接。多個客戶端可以綁定至同一個服務。如果服務此時還沒有載入,bindService()會先載入它。
提供給可被其他應用復用,比如定義一個天氣預報服務,提供與其他應用調用即可。

3.Service的生命周期


context.startService() ->onCreate()- >onStart()->Service running--調用context.stopService() ->onDestroy()

context.bindService()->onCreate()->onBind()->Service running--調用>onUnbind() -> onDestroy()
從上訴可以知道分別對應本地的,,以及遠程的,也對應不同的方式啟動這個服務。


4.如果你Activity不綁定服務,那麼就無法與遠程服務進行通信

例如你要調用其它應用的服務(進程之間的通信)


有關更多的RPC通信建議查看android官網的API

Ⅳ Android中Service服務有哪些

Service分為本地服務(LoaclService)和遠程服務(RemoteService)。
本地服務:用於應用程序內部,這也與客戶端(可以理解也activity)進行通信就很方便。
遠程服務:用於android系統內部的應用程序之間。

Ⅵ android之服務的啟動服務和綁定服務的區別

1 通過startService
Service會經歷 onCreate --> onStart
stopService的時候直接onDestroy

如果是 調用者 直接退出而沒有調用stopService的話,Service會一直在後台運行。
下次調用者再起來仍然可以stopService。

2 通過bindService
Service只會運行onCreate, 這個時候 調用者和Service綁定在一起

調用者退出了,Srevice就會調用onUnbind-->onDestroyed
所謂綁定在一起就共存亡了。

Ⅶ 安卓編程中 怎麼把activity和service綁定

在service設置定時器,每隔一段時間檢測電量並改變textview的內容。這里的textview是activity布局文件中的textview。

Ⅷ Android service與activity綁定調用問題

調用startactivity到另一個activity之後,原來的Activity會暫停,如果內存不夠就會被kill掉。綁定的service也會調用destroy方法,因為你的service是用bindservice啟動的。所以你的想法還是用startservice方法啟動service然後再用廣播進行activity與service之間的數據交換比較簡單。

Ⅸ Android中如何啟用Service,如何停用Service

• Context.startService()
• Context.bindService()

1. 在同一個應用任何地方調用 startService() 方法就能啟動 Service 了,然後系統會回調 Service 類的
onCreate() 以及 onStart() 方法。這樣啟動的 Service 會一直運行在後台,直到
Context.stopService() 或者 selfStop() 方法被調用。另外如果一個 Service 已經被啟動,其他代碼再試圖調用
startService() 方法,是不會執行 onCreate() 的,但會重新執行一次 onStart() 。

2. 另外一種 bindService() 方法的意思是,把這個 Service 和調用 Service
的客戶類綁起來,如果調用這個客戶類被銷毀,Service 也會被銷毀。用這個方法的一個好處是,bindService() 方法執行後
Service 會回調上邊提到的 onBind() 方發,你可以從這里返回一個實現了 IBind
介面的類,在客戶端操作這個類就能和這個服務通信了,比如得到 Service 運行的狀態或其他操作。如果 Service
還沒有運行,使用這個方法啟動 Service 就會 onCreate() 方法而不會調用 onStart()。

總結:
1.
startService()的目的是回調onStart()方法,onCreate()
方法是在Service不存在的時候調用的,如果Service存在(例如之前調用了bindService,那麼Service的onCreate方法
已經調用了)那麼startService()將跳過onCreate() 方法。

2.
bindService()目的是回調onBind()方法,它的作用是在Service和調用者之間建立一個橋梁,並不負責更多的工作(例如一個
Service需要連接伺服器的操作),一般使用bindService來綁定到一個現有的Service(即通過StartService啟動的服
務)。
由於Service 的onStart()方法只有在startService()啟動Service的情況下才調用,故使用onStart()的時候要注意這點。

Ⅹ 如何讓android的service一直在後台運行

1、把service和activity分開,讓service開機啟動。
2、設置一個broadcast receiver接受開機信號,使用RECEIVE_BOOT_COMPLETED的permission, 然後啟動service。
3、activity啟動後綁定到service上,通過ipc機制通信,acitivity結束後松綁。
4、注意安裝後要手動啟動service,不會自動啟動,之後重啟手機後才會隨開機啟動。

5、在內存低的時候系統會自動清理進程,這時候後台service可能會被殺掉。
6、可以在onStartCommand中返回START_STICKY,這樣系統有足夠多資源的時候,就會重新開啟service。

7、以上不需要NDK,直接用SDK開發就可以了。
8、下面是一個服務的代碼僅供參考:
public class MyService extends Service {
private static final String TAG = "MyService";
MediaPlayer player;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "My Service created", Toast.LENGTH_LONG).show();
Log.i(TAG, "onCreate");
player = MediaPlayer.create(this, R.raw.braincandy);
player.setLooping(false);
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stoped", Toast.LENGTH_LONG).sho();
Log.i(TAG, "onDestroy");
player.stop();
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "My Service Start", Toast.LENGTH_LONG).show();
Log.i(TAG, "onStart");
}
}

熱點內容
es買哪個配置的最多 發布:2024-05-21 23:57:23 瀏覽:695
阿里雲伺服器國外 發布:2024-05-21 23:46:39 瀏覽:78
雙資料庫 發布:2024-05-21 23:42:23 瀏覽:151
linuxip設置命令 發布:2024-05-21 22:52:56 瀏覽:851
aspnetfile上傳 發布:2024-05-21 22:28:58 瀏覽:671
華為nm存儲卡卡刷 發布:2024-05-21 22:25:23 瀏覽:601
sql注入過程 發布:2024-05-21 22:20:07 瀏覽:949
c並行編程 發布:2024-05-21 22:10:00 瀏覽:150
愛比較伺服器怎麼開 發布:2024-05-21 22:00:42 瀏覽:668
java代碼格式 發布:2024-05-21 21:56:09 瀏覽:36