我试图在Xamarin Forms平台上开发一个移动的应用程序。我从API获取数据。API调用只发生一次,只有当应用程序打开时。我在ListView中列出球队之间的livescores。例如,比赛的分钟25现在。我等待2分钟,没有任何变化。分钟在我的ListView上是相同的。当我关闭并再次打开应用程序时,分钟正在变化。我只是想每5秒调用一次刷新数据而不关闭应用程序。下面是我的代码。
public List<liveScoreData>liveScore()
{
var result = new List<liveScoreData>();
try
{
Guid guidSifre = Guid.NewGuid();
string guid = guidSifre.ToString();
string result = CreateMD5forChecksum(guid);
using (var client = new WebClient())
{
var values = new NameValueCollection();
values["result"] = result;
values["guid"] = guid;
var response = client.UploadValues("http://abcd.com/admin/LiveScore", values);
var responseString = Encoding.Default.GetString(response);
var responseResult = JsonConvert.DeserializeObject(responseString);
result = JsonConvert.DeserializeObject<List<liveScoreData>>(responseResult.ToString());
Mehmet.liveScoreDataList = result;
}
}
catch (Exception ex)
{
var exc = ex;
}
return result;
}
字符串
2条答案
按热度按时间41zrol4v1#
你可以做的是实现我的特殊PollingTimer.cs类:
字符串
然后你可以做的是在你的页面中,你想每5秒调用一次,在它末尾的构造函数中,你可以写这行代码:
型
这将每5秒运行一次你的方法。为了让你的方法与pollingtimer一起工作,你必须将你的方法编辑为void,并将值返回给一个全局变量,如下所示:
型
然后从那里你可以用其他方法检查你的实时分数数据。
型
在OnDisappearing方法中,
型
尝试一下,看看你是否可以把它放在更好的地方,以获得最佳性能等。
k2fxgqgv2#
可以使用
System.Threading.Timer
对象然后简单地初始化它
字符串