我是Android新手,正在開發一個應用程序,其中的小部件顯示位置latlong。我正在配置活動。刷新按鈕上的相同位置刷新。所有工作正常,但Activity窗口在小部件上閃爍。我希望從服務中獲得相同的輸出,以便活動屏幕不會在前面閃爍。Android:如何使用Activity在服務中給出的功能
爲此,我創建了一個服務,它啓動刷新按鈕單擊,但現在我怎麼可以編碼,因爲我使用地圖視圖,位置管理器等服務不允許。
我是Android新手,正在開發一個應用程序,其中的小部件顯示位置latlong。我正在配置活動。刷新按鈕上的相同位置刷新。所有工作正常,但Activity窗口在小部件上閃爍。我希望從服務中獲得相同的輸出,以便活動屏幕不會在前面閃爍。Android:如何使用Activity在服務中給出的功能
爲此,我創建了一個服務,它啓動刷新按鈕單擊,但現在我怎麼可以編碼,因爲我使用地圖視圖,位置管理器等服務不允許。
在你的服務,你可以使用這樣的:實現LocationListener
private void startPositionListener() {
if (mLocationManager == null) {
// Get the location manager
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
}
try {
gpsEnabled = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
networkEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch (Exception e) {
Log.e(TAG, e.getLocalizedMessage());
}
// Register the listener with the Location Manager to receive location updates
if(gpsEnabled) {
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 6000, 1, mGpsListener);
Log.d(TAG, "GPS Listener started.");
} else if(networkEnabled) { // Checking for GSM
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 6000, 1, mNetworkListener);
Log.d(TAG, "Network Listener started.");
}
}
凡mNetworkListener
和mGpsListener
是一流的。您必須填寫的唯一方法是onLocationChanged(Location)
(這是您在服務內部獲取位置數據的位置)。當你完成類似的事情時不要忘記更新這些對象:
private void stopPositionListner() {
if (mLocationManager != null) {
mLocationManager.removeUpdates(mGpsListener);
mLocationManager.removeUpdates(mNetworkListener);
Log.d(TAG, "Position Listener stopped.");
}
}
謝謝4你回覆,我會看到並恢復出來。 – rmimran 2012-08-03 12:48:10
我不認爲我理解這個問題。你能否以更詳細的方式來描述它? – alex 2012-08-02 12:05:07
之前,我在刷新按鈕單擊時調用一個活動,該活動查找最新的LAT LONG並更新小部件。它工作正常,但活動屏幕在更新小部件之前閃爍。現在我想用服務而不是活動爲此目的..但問題是我在活動代碼中使用位置管理器和地圖視圖等來查找位置,但在服務中這些是不允許的。 – rmimran 2012-08-03 07:43:13
你當然可以在'Service'裏面使用'LocationManager' :) – alex 2012-08-03 08:20:20