我在我的Android APP上有一个后台服务,它正在获取我的GPS位置并将其发送到远程数据库.它工作得很好.
问题是当我想要停止服务......它不会停止:S.也没有出现logcat上的异常或错误......它根本不会停止.
这是启动我的srvice的代码(带按钮):
startService(new Intent(GPSLoc.this, MyService.class)); //enciendo el service
Run Code Online (Sandbox Code Playgroud)
这是我停止它的代码(在onactivityresult方法上):
stopService(new Intent(GPSLoc.this, MyService.class));
Run Code Online (Sandbox Code Playgroud)
我已经调试了应用程序,并且我检查了每次调试它时都调用了stopService代码行,但它没有停止......
我确信它没有停止导致我的数据库,当我按下按钮停止服务时,我仍然从模拟器中恢复gps位置.
我做得不好?
小智 5
我有同样的问题。我发现如果服务已经GoogleApiClient连接并且仍然获得位置更新,stopService()则完全没有影响,服务的industry()没有被调用。为了解决这个问题,我在服务代码中创建了一个停止位置服务的函数。调用stopLocationService()从活动,然后调用stopService。下面是代码示例:
public class myLocationService extends Service{
...
public void stopLocationUpdates() {
LocationService.FusedLocationApi.removeLocationUpdates(mGoogleApiClient,this);
mGoogleApiClient.disconnect();
}
...
}
Run Code Online (Sandbox Code Playgroud)
在活动中,
{
...
if(mService != null && isBound) {
mService.stopLocationUpdates();
doUnbindService();
stopService(new Intent(this, myLocationService.class));
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35005 次 |
| 最近记录: |