我有一个应用程序,它使用JSON定期(固定时间间隔,20秒)从服务器请求数据。
我目前的实现包括在一个异步任务中有一个循环,有一个20秒的“睡眠”条件。然而,这似乎不是一个好的实现。我的问题是有没有更好的实施方案。还有,有没有一种好的方法可以从主线程中强制停止异步任务。?
另一种选择是更改代码,让客户机发送一个请求,让服务器让服务器循环返回答案。哪一种更好的实施方式提前感谢:)
protected String doInBackground(String... args) {
String RegistrartionID = RegisID();
while (true){
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("Start_Term", args[0]));
params.add(new BasicNameValuePair("Dest_Term", args[1]));
params.add(new BasicNameValuePair("RegistrartionID",
RegistrartionID));
Log.i("Start_Term", args[0]);
Log.i("Dest_Term", args[1]);
Log.i("RegistrartionID", RegistrartionID);
JSONObject json = jsonParser.makeHttpRequest(
URL_SEND_CHOSEN_TERMINALS, "POST", params);
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
我建议您使用执行AsyncTask的服务,对于每20秒循环一次的服务,您可以使用AlarmManager
如你所说,这不是一个好的实现。与流行的观念相反,< code>AsyncTask不是为长时间/不确定时间的进程设计的,而是为短时间的任务设计的,因此它可以在之后退出并结束。
出于您的目的,我建议使用服务
。基本上,因为你有优势,你启动它,并在你定义的活动中停止它。您可以在此处查看其文档。这也可能会有所帮助,这是一个很好的例子。
我在StackOverflow的职业生涯中有一个第一个问题。我希望是你帮我。 发生了什么:
本文向大家介绍Django异步任务线程池实现原理,包括了Django异步任务线程池实现原理的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Django异步任务线程池实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当数据库数据量很大时(百万级),许多批量数据修改请求的响应会非常慢,一些不需要即时响应的任务可以放到后台的异步线程中
一个小背景:我的主要活动时,“在简历上”连接到我的服务器要求信息。这是正确的。当活动接收到答案时,它将数据加载到数组上,在加载完数组后,它调用位于主活动上的“updateFragments”。在这儿... DataManager类是:构造函数: 异步任务调用以下命令:
我正在探索使用Spring Boot的异步servlet。据我所知,异步servlet用于在一个线程中执行长时间运行的任务,而不是容器为处理请求而启动的线程,这样容器就可以使用自己的线程来处理其他连接。基于这样的理解,我尝试了以下代码: 但问题是,运行的同一线程正在调用方法。不是应该不一样吗?
主要内容:本节引言:,1.相关概念,2.AsyncTask全解析:,3.AsyncTask使用示例:,本节小结:本节引言: 本节给大家带来的是Android给我们提供的一个轻量级的用于处理异步任务的类:AsyncTask,我们一般是 继承AsyncTask,然后在类中实现异步操作,然后将异步执行的进度,反馈给UI主线程~ 好吧,可能有些概念大家不懂,觉得还是有必要讲解下多线程的概念,那就先解释下一些概念性的东西吧! 1.相关概念 1)什么是多线程: 答:先要了解这几个名称:应用程序,进程,线程,
我想调用一个方法,从一个AsyncWork,从另一个类,我正在尝试这个 但我得到错误“。你能帮助我吗? 我的扩展活动: