*请查看以下编写的源代码行并提出建议: - *
在下面提到的代码行中,我试图每 60 秒请求一次 GPS 和网络位置。
if (gps_enabled)
{
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0, locationListenerGps);
}
if (network_enabled)
{
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 0,
locationListenerNetwork);
}
下面提到的是位置更改侦听器的代码:-
LocationListener locationListenerGps = new LocationListener()
{
public void onLocationChanged(Location location)
{
mCurrentGpsLocation = location;
String userCurrentGpsLocation = findUserAddress(mCurrentGpsLocation, mPreviousGpsLocation);
mPreviousGpsLocation = location;
for(int i = 0, size = mLocationUpdateListeners.size(); i<size; i++)
{
LocationUpdateListener listener = mLocationUpdateListeners.get(i);
listener.recieveGpsNotification(userCurrentGpsLocation);
}
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
LocationListener locationListenerNetwork = new LocationListener()
{
public void onLocationChanged(Location location)
{
mCurrentNetworkLocation = location;
String userCurrentNetworkLocation =findUserAddress(mCurrentNetworkLocation, mPreviousNetworkLocation);
mPreviousNetworkLocation = location;
for(int i = 0, size = mLocationUpdateListeners.size(); i<size; i++)
{
LocationUpdateListener listener = mLocationUpdateListeners.get(i);
listener.recieveNetworkNotification(userCurrentNetworkLocation);
}
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
在接收 GPS 和网络的位置更改事件时,我只需分别调用我的听众 recieveGpsNotification() 和 recieveNetworkNotification() 方法。recieveGpsNotification() 的逻辑如下:-
public void recieveGpsNotification(String gpsLocation)
{
sendEmail();
}
**问题 :-
1) 我希望每 60 秒后调用一次 sendMail() 但我收到的通知非常频繁,在 4-5 次通知后我的应用程序崩溃了。如果您在实现逻辑中发现任何错误,请提供帮助。
2) 即使我的活动处于暂停状态或停止状态,我是否也会收到 GPS 通知,因为即使我的活动处于后台或停止状态,我也想收到通知?
附加查询:- 每当 android 框架为我们提供 GPS 位置更新时,每次通知都来自不同的线程,还是请求通知的线程?提前致谢。**