Java 如何创建IntentService来检查GoogleAppClient是否为空
在我的项目中,我使用“GoogleAppClient”每5秒发出一次定位请求,问题是,如果我关闭GPS然后重新打开应用程序,它会崩溃,因为Java 如何创建IntentService来检查GoogleAppClient是否为空,java,android,google-api-client,intentservice,android-intentservice,Java,Android,Google Api Client,Intentservice,Android Intentservice,在我的项目中,我使用“GoogleAppClient”每5秒发出一次定位请求,问题是,如果我关闭GPS然后重新打开应用程序,它会崩溃,因为mgoogleAppClient对象当前为空!我只是在重新启动时对onRestart protected void onRestart() { super.onRestart(); if(mGoogleApiClient != null && mGoogleApiClient.isConnected()){ st
mgoogleAppClient
对象当前为空!我只是在重新启动时对onRestart
protected void onRestart() {
super.onRestart();
if(mGoogleApiClient != null && mGoogleApiClient.isConnected()){
startLocationUpdate();
}
}
我想要的是创建一些我可以在每次对象mGoogleApiClient
为空时调用的东西,以便它可以在后台尝试,直到可以继续!startLocationUpdate()的内部代码>我正在使用这个:
mlocationRequest = new LocationRequest();
mlocationRequest.setInterval(5000);
mlocationRequest.setFastestInterval(2000);
mlocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
try{
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mlocationRequest,MainActivity.this);
}catch (SecurityException ex){
Toast.makeText(this, ex.toString(), Toast.LENGTH_SHORT).show();
}
可能是这样的:
if(mGoogleApiClient != null){
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mlocationRequest,MainActivity.this);
}else {
callServiceToTryConnection();
}
我已经使用IntentService
和Geocoder
来获取地址 在重新启动时签入,即此条件是否启用GPS
if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
//Here is your condition if GPS is not connected
}
将处理程序放在连接挂起或连接失败的方法中,该方法尝试检查并重新连接(如果不为null)。您可以使用Android服务和计时器尝试使用in-serviceI,我希望在连接返回之前继续尝试!使用处理器,然后它会在给定的时间后继续检查GPS是否可用。我无法手动执行!!它必须是某种计时器,所以每5秒重试一次!!您可以通过使用处理程序类方法scheduleatFixedRate来设置它,您必须在其中指定执行该任务的间隔