首页 文章 精选 留言 我的

精选列表

搜索[任务插件],共10012篇文章
优秀的个人博客,低调大师

iOS NSURLSession DataTask(数据任务)

GET // get请求 - (void)get { NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/demo.json"]; [[[NSURLSession sharedSession] dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@", dict); }] resume]; } POST // post请求 - (void)post { NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/demo.json"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; request.HTTPMethod = @"post"; request.HTTPBody = [@"username=123&password=123" dataUsingEncoding:NSUTF8StringEncoding]; [[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@", dict); }] resume]; }

优秀的个人博客,低调大师

Android异步任务详解 AsynTask

android提供了一套专门用于异步处理的类。即:AynsTask类。使用这个类可以为耗时程序开辟一个新线程进行处理,处理完时返回。 其实,AsynTask类就是对Thread类的一个封装,并且加入了一些新的方法。编程时,两者都可以实现同样的功能。本文后面将对AsynTask和Thread进行比较。 1、AsynTask类结构 asysTask类主要用到的几个内部回调函数有: doInBackGround() onPreExecute() onPostExecute() onProgressUpdate() 正是这几个回调函数构成了AsynTask类的使用逻辑结构。 注意:每个AsynTask子类必须至少复写doInBackGround()方法。 2、回调逻辑关系 1>主线程调用AsynTask子类实例的execute()方法后,首先会调用onPreExecute()方法。onPreExecute()在主线程中运行,可以用来写一些开始提示代码。 2>之后启动新线程,调用doInBackground()方法,进行异步数据处理。 3>处理完毕之后异步线程结束,在主线程中调用onPostExecute()方法。onPostExecute()可以进行一些结束提示处理。 补充:在doInBackground()方法异步处理的时候,如果希望通知主线程一些数据(如:处理进度)。这时,可以调用publishProgress()方法。这时,主线程会调用AsynTask子类的onProgressUpdate()方法进行处理。 3、各个函数间数据的传递 通过上面的调用关系,我们就可以大概看出一些数据传递关系。如下: execute()向doInBackground()传递。 doInBackground()的返回值会传递给onPostExecute()。 publishProgress()向progressUpdate()传递。 要点:为了调用关系明确及安全,AsynTask类在继承时要传入3个泛型。第一个泛型对应execute()向doInBackground()的传递类型。第二个泛型对应doInBackground()的返回类型和传递给onPostExecute()的类型。第三个泛型对应publishProgress()向progressUpdate()传递的类型。 传递的数据都是对应类型的数组,数组都是可变长的哦。可以根据具体情况使用。 4、实例: 看了上面的内容,应该对asynTask类的使用逻辑有了了解。下面写一个简单的例子。 例子功能很简单:activity中有1个textView和botton。当点击botton时,异步改变textView的值,并且在相应的回调函数执行时,用System.out.println()输出值。 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="change" /> </LinearLayout> java代码: import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class AnsyTestActivity extends Activity { /** Called when the activity is first created. */ TextView text =null; Button button=null; String str=null; AnsyTry anys=null; double result=0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text=(TextView) findViewById(R.id.text); button=(Button) findViewById(R.id.button); str="wei"; button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub anys=new AnsyTry(text); anys.execute(str); } }); } class AnsyTry extends AsyncTask<String, TextView, Double>{ TextView te=null; public AnsyTry(TextView te) { super(); this.te = te; } @Override protected Double doInBackground(String... params) { // TODO Auto-generated method stub double dou=0; if(params[0].equals("wei")){ System.out.println(Thread.currentThread().getName()+" recive wei"); dou=100; } publishProgress(te); return dou; } @Override protected void onPostExecute(Double result) { // TODO Auto-generated method stub super.onPostExecute(result); System.out.println("postExecute---double---"+result); } @Override protected void onPreExecute() { // TODO Auto-generated method stub\ System.out.println("pretExecute------"); super.onPreExecute(); } @Override protected void onProgressUpdate(TextView... values) { // TODO Auto-generated method stub values[0].setText(values[0].getText()+"1"); super.onProgressUpdate(values); } } } 5、总结 初次看到这个异步调用关系可能觉得很复杂,但其实熟悉了之后会发现这种结构很好用。这种结构将所有的线程通信都封装成回调函数,调用逻辑容易书写。尤其是在异步处理结束之后,有回调函数进行收尾处理。如果是使用Thread的run()方法,run()结束之后没有返回值。所以必须要自己建立通信机制。但是,其实使用Handler+Thread机制其实完全可以替代AsynTask的这种调用机制。只要将Handler对象传给Thread,就可以进行方便的异步处理。且这种MVC模式结构更加明显,方便管理。所以我觉得,使用asynTask还是Handler+Thread结构,个人喜好吧。但是有一点可以明显能感觉到得是,Handler+Thread适合进行大框架的异步处理,而asynTask适用于小型简单的异步处理。以上都是个人观点+理解。有新观点请指出。 本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/804124,如需转载请自行联系原作者

优秀的个人博客,低调大师

IOT03-任务计算

1、时间计算 字段 说明 t 输入时间值,支持yyyyMMddHHmmss ts 输入时间,开始时间yyyyMMddHHmmss te 输入时间,结束时间yyyyMMddHHmmss pt 前一天,yyyyMMddHHmmss pts 前一天,开始时间 yyyyMMddHHmmss pts 前一天,结束时间 yyyyMMddHHmmss ppt 前二天,yyyyMMddHHmmss pts 前一天,开始时间 yyyyMMddHHmmss pte 前二天,结束时间 yyyyMMddHHmmss d 当前日期yyyyMMdd pd 前一天 yyyyMMdd ppd 前二天 yyyyMMdd 2、日期函数 字段 说明 输入参数 输出 getYear 获取当前时间年分 yyyyMMddHHmmss,至少4位 yyyy getMonth 获取当前时间月份 yyyyMMddHHmmss,至少6位 yyyyMM getMonthStart 获取月份的开始 yyyyMMddHHmmss,至少6位 yyyyMMddHHmmss getMonthEnd 获取月份的结束 yyyyMMddHHmmss,至少6位 yyyyMMddHHmmss getDay 获取日期 yyyyMMddHHmmss,至少8位 yyyyMMdd getDayStart 获取日期开始 yyyyMMddHHmmss,至少8位 yyyyMMddHHmmss getDayEnd 获取日期结束 yyyyMMddHHmmss,至少8位 yyyyMMddHHmmss getTime 获取时间 日期,hhmmss 时分秒 yyyyMMddHHmmss addYear 添加年 时间,整数年 yyyyMMddHHmmss addMonth 添加月 时间,整数月 yyyyMMddHHmmss addDay 添加日 时间,整数日 yyyyMMddHHmmss getDayNum 获取时间位置 时间,时间间隔 yyyyMMddHHmmss 3、基础数据表 3.1 日汇总 iot_day 当天8:00 到第二天8:00 字段 说明 so 开始原始值 sv 开始计算值 eo 结束原始值 ev 技术计算值 bv 本次量 3.2 尖峰平谷 iot_jfpg 字段 说明 jv 尖 fv 峰 pv 平 pv 谷 3.3 班次报表 iot_class 字段 说明 aso 早开始原始值 asv 早开始计算值 aeo 早结束原始值 aev 早技术计算值 abv 早本次量 - - bso 中开始原始值 bsv 中开始计算值 beo 中结束原始值 bev 中技术计算值 bbv 中本次量 - - cso 晚开始原始值 csv 晚开始计算值 ceo 晚结束原始值 cev 晚技术计算值 cbv 晚本次量

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册