首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用连续的web服务android的更好的方式是什么?

调用连续的web服务android的更好的方式是什么?
EN

Stack Overflow用户
提问于 2016-10-27 18:44:05
回答 1查看 91关注 0票数 0

在app中,我正在调用多个Web服务consecutively.For实例,用户首先登录,在成功调用时,我在成功调用时调用'Check Available‘服务,在成功获得响应时调用'Download web service’,然后进一步执行其他things.Happens what on Log in successful如果互联网中断或服务器停止响应,则显示一条消息(互联网中断/服务器未响应)。我想要继续或恢复进程,一旦互联网连接(意味着它应该继续重试)。为此,我捕获了异常SocketTimeOut和其他异常,最后我检查异常是否发生,回调调用类,在回调方法中,我在暂停线程5秒后再次调用webservice (以避免频繁调用)。我的问题是,对于webservice的这个序列调用,应该采用什么更好的方法。因为我已经实现了,是不是更好?

EN

回答 1

Stack Overflow用户

发布于 2016-10-27 22:17:14

我认为你应该倾听连通性的变化,而不是每5秒尝试一次。手机可能会离线几个小时。

诸如应用程序onCreate之类的位置

代码语言:javascript
复制
registerReceiver(
      new ConnectivityChangeReceiver(),
      new IntentFilter(
            ConnectivityManager.CONNECTIVITY_ACTION));

在另一个类中:

代码语言:javascript
复制
public class ConnectivityChangeReceiver
               extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
      debugIntent(intent, "grokkingandroid");
   }

   private void debugIntent(Intent intent, String tag) {
      Log.v(tag, "action: " + intent.getAction());
      Log.v(tag, "component: " + intent.getComponent());
      Bundle extras = intent.getExtras();
      if (extras != null) {
         for (String key: extras.keySet()) {
            Log.v(tag, "key [" + key + "]: " +
               extras.get(key));
            // Do whatever you need based on connectivity status
            // You could send an internal broadcast that your web service code listens for
         }
      }
      else {
         Log.v(tag, "no extras");
      }
   }

}

摘自:http://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/

在这个主题上有很多资源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40282582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档