我使用Xamarin.android创建了一个android应用程序。我的应用程序有一个列表视图,其行中填充了我通过asmx Web服务从sql server获得的数据。它还有一个弹出菜单,也可以从数据库表中获取数据。当我点击列表视图中的一行时,会显示一个对话框片段,其中包含关于所点击行的信息。我使用webservice函数从同一个数据库表中获取这些信息,该函数过滤表以获取与所选项目相对应的信息。我的意思是,每当我需要在我的应用程序中填写一些内容时,我都会在我的asmx web服务中创建一个web功能,并在我的程序中使用它。所以我在想,这有效吗?没事吧?还是最好将数据库表的数据存储在我的应用程序中的全局变量中,每当我需要做什么时,我只对它执行一些操作?任何建议都将不胜感激。提前谢谢。
最好尽可能少地使用web服务调用,因为移动应用程序中崩溃次数最多的主要原因是外部服务无法正常工作。因此,请尝试将应用程序编码到可以接收来自服务的空响应的位置,或者在解析响应数据时出现某种错误。
如果您的应用程序被很多用户使用,那么减少API调用的数量将减少服务器的负载。在您使用基于API调用收费的云应用服务的情况下,最好也减少API调用。最好的方法是尽可能多地缓存。
对于Xamarin中的缓存,我强烈建议使用像Akavache这样的服务来正确管理来自您的服务的数据,这样您就可以以最佳方式进行缓存,同时记住缓存的时间限制和存储类型。