2011-02-06 57 views
1

我對Android中的服務有疑問。我想知道爲什麼需要綁定服務並與之建立連接?我正在使用實現GPS模塊的服務執行地理定位應用程序。爲了獲得位置,我在類的靜態和公共方法中創建了一個變量,以便從類外部調用,就是這樣。 爲了取回我只是在我的類中使用GPS的位置:在Android中綁定到服務

Location mLocation = ServiceGPS.getLocation(); 

類ServiceGPS有這個方法:

public static Location getLocation(){ 
    return mLocation; 
} 

那麼,爲什麼我需要使用的綁定服務? 非常感謝您的幫助,並與我分享您的知識。

BR。 David。

回答

2

我想知道爲什麼需要綁定服務並與之建立連接?

這是不是 「必要的」。這並不意味着任意選擇是一個好主意。

例如,如果您的所有服務都獲得Location,則應該從項目中刪除該服務,並直接使用LocationManager,因爲尚不清楚您的服務增加了什麼價值。不要僅因爲心情打擊你而創建服務 - 要清楚地瞭解服務提供的功能以及爲什麼它應該是服務,而不僅僅是某個活動的方法。

對於做實實在在的事情真正的服務,該服務代碼具有運行 - 一個服務通常不具有靜態數據成員或方法,雖然能及。爲了讓服務運行,必須調用startService()bindService()。否則,onCreate()和服務的親將永遠不會被調用,就像onCreate()一樣,如果活動未啓動,則永不會調用活動的親屬。

是否使用startService()(以及後來的stopService()stopSelf())或bindService()(以及後來的unbindService())的選擇取決於什麼服務在做什麼,它是如何長應該做它,等等。