在app中,我正在调用多个Web服务consecutively.For实例,用户首先登录,在成功调用时,我在成功调用时调用'Check Available‘服务,在成功获得响应时调用'Download web service’,然后进一步执行其他things.Happens what on Log in successful如果互联网中断或服务器停止响应,则显示一条消息(互联网中断/服务器未响应)。我想要继续或恢复进程,一旦互联网连接(意味着它应该继续重试)。为此,我捕获了异常SocketTimeOut和其他异常,最后我检查异常是否发生,回调调用类,在回调方法中,我在暂停线程5秒后再次调用webservice (以避免频繁调用)。我的问题是,对于webservice的这个序列调用,应该采用什么更好的方法。因为我已经实现了,是不是更好?
发布于 2016-10-27 22:17:14
我认为你应该倾听连通性的变化,而不是每5秒尝试一次。手机可能会离线几个小时。
诸如应用程序onCreate之类的位置
registerReceiver(
new ConnectivityChangeReceiver(),
new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION));在另一个类中:
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/
在这个主题上有很多资源。
https://stackoverflow.com/questions/40282582
复制相似问题