安卓显示对话从服务出错

时间:2013-10-02 22:08:46

标签: android android-service google-play-services android-location

我有一个Service来实现GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener, LocationListener

因此,当我创建Service时,我会检查Google Play Services是否可用,或者版本是否正确:

private boolean servicesConnected() {

  // Check that Google Play services is available
  int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

  // If Google Play services is available
  if (ConnectionResult.SUCCESS == resultCode) {
      return true;
  } else {
    // Get the error code
      GooglePlayServicesUtil
          .getErrorDialog(resultCode, this, 0).show();// This won't work in a service
  }

}//end

因此,如果我返回错误代码,我该怎样才能回复它(向用户显示带有选项的Dialog),因为我在Service内?在这种情况下,最佳做法是什么?

2 个答案:

答案 0 :(得分:3)

最佳做法是服务仅适用于长任务“非UI相关”功能,如果您需要显示一条消息机会,您不需要服务很高,它们应该是100根据Google的文档,%后台长任务功能。实际上,必须显示错误消息或与UI相关的内容将是寻找不同方法的好方法,无论如何,如果显示消息我认为您的活动应该是可见的那么重要,您可以随时将服务绑定到您的活动并在其上执行显示对话框的方法...

希望这个帮助...

问候!

答案 1 :(得分:0)

您始终可以在服务中启动活动。