Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建IntentService来检查GoogleAppClient是否为空_Java_Android_Google Api Client_Intentservice_Android Intentservice - Fatal编程技术网

Java 如何创建IntentService来检查GoogleAppClient是否为空

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

在我的项目中,我使用“GoogleAppClient”每5秒发出一次定位请求,问题是,如果我关闭GPS然后重新打开应用程序,它会崩溃,因为
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来设置它,您必须在其中指定执行该任务的间隔