CN116506428A - 一种基于kotlin的数据离线上传方法及装置 - Google Patents

一种基于kotlin的数据离线上传方法及装置 Download PDF

Info

Publication number
CN116506428A
CN116506428A CN202310732924.XA CN202310732924A CN116506428A CN 116506428 A CN116506428 A CN 116506428A CN 202310732924 A CN202310732924 A CN 202310732924A CN 116506428 A CN116506428 A CN 116506428A
Authority
CN
China
Prior art keywords
data
uploading
task
folder
kotlin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310732924.XA
Other languages
English (en)
Other versions
CN116506428B (zh
Inventor
鲍立志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Chengdu Bodian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Bodian Technology Co ltd filed Critical Chengdu Bodian Technology Co ltd
Priority to CN202310732924.XA priority Critical patent/CN116506428B/zh
Publication of CN116506428A publication Critical patent/CN116506428A/zh
Application granted granted Critical
Publication of CN116506428B publication Critical patent/CN116506428B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种基于kotlin的数据离线上传方法及装置。当数据上传失败时,通过kotlin获取数据的数据类型集,并与数据一起作为一个数据对象,存入位于本地的离线数据文件夹。之后以预设频率判断上传是否可行,如果是,则获取离线数据文件夹中的数据对象,通过kotlin将数据对象中的数据上传。其中数据类型集包括上传函数和回调函数的函数名、参数,用以通过kotlin上传数据,如此能够使上传数据的流程成为一个通用的处理流程,当新增上传数据种类时,无需针对不同种类数据去做不同处理,解决了随数据种类增多导致的开发量大、维护困难的问题。此外,kotlin获取函数名及参数时,还能避免硬编码的弊端。

Description

一种基于kotlin的数据离线上传方法及装置
技术领域
本申请涉及数据上传技术领域,特别涉及一种基于kotlin的数据离线上传方法及装置。
背景技术
在应用程序运行过程中,往往需要将数据上传至服务端,当网络不通时会导致上传失败,这时就要把数据暂存在本地,待网络恢复后重新上传。其中,上传的方式是调用程序中的某个函数,不同类型的数据需要调用不同的函数。由于上传的数据种类繁多,开发人员要根据数据的种类去调用相应的函数,无法做到所有种类数据的通用。例如,上传客户电话要调用函数A,上传客户住址要调用函数B,如果需要上传100种不同种类的数据,开发人员就要一一对这100种数据进行函数的调用等操作。因而导致开发量随着数据种类增多而变大,开发和维护成本也直线上升。
现有技术中的离线上传方法尚无能够解决由于数据种类多导致上述问题的办法。本发明旨在解决离线上传过程中,开发量大、成本高、通用性差的问题。
发明内容
基于上述问题,本申请提供了一种基于kotlin的数据离线上传方法及装置,以解决离线上传过程中,开发量大、成本高、通用性差的问题。
本申请公开了一种基于kotlin的数据离线上传方法,所述方法包括:
当数据上传失败时,通过kotlin获取所述数据的数据类型集;所述数据类型集包括上传函数的函数名、上传函数的参数列表、回调函数的函数名和回调函数的参数列表;
将所述数据和所述数据类型集作为一个数据对象,存入位于本地的离线数据文件夹中;
以预设频率判断上传是否可行,直至上传可行;
获取所述离线数据文件夹中的数据对象;
通过kotlin将所述数据对象中的数据上传。
可选的,所述判断上传是否可行,包括:
判断网络是否可用,并检查所述离线数据文件夹是否为空;
如果网络可用且所述离线数据文件夹不为空,则判断所述离线数据文件夹中的数据对象所占空间大小是否超过预设大小;
如果是,则提醒用户检查并开启网络;
如果否,则判断上传可行。
可选的,所述获取所述离线数据文件夹中的数据对象,包括:
创建协程管道,并设置所述协程管道的预设任务量;
遍历所述离线数据文件夹中的数据对象,并将每一个数据对象作为一个上传任务,添加到所述协程管道中。
可选的,在通过kotlin将所述数据对象上传前,所述方法还包括:
判断所述协程管道中的上传任务是否超过所述预设任务量;
若是,则暂停上传任务的添加,直至所述协程管道中的上传任务小于所述预设任务量;
若否,则添加上传任务。
可选的,在获取所述离线数据文件夹中的数据对象后,所述方法还包括:删除所述离线数据文件夹中的所述数据对象。
可选的,所述通过kotlin将所述数据对象上传,包括:
通过kotlin反射的方式调用所述数据对象中的上传函数,以上传所述数据对象;
当所述数据对象上传成功时,通过kotlin反射的方式调用所述数据对象中的回调函数。
基于上述一种基于kotlin的数据离线上传方法,本申请还公开了一种基于kotlin的数据离线上传装置,包括:类型集获取单元、数据对象存储单元、可行性判断单元、数据对象获取单元和上传单元;
所述类型集获取单元,用于当数据上传失败时,通过kotlin获取所述数据的数据类型集;所述数据类型集包括上传函数的函数名、上传函数的参数列表、回调函数的函数名和回调函数的参数列表;
所述数据对象存储单元,用于将所述数据和所述数据类型集作为一个数据对象,存入位于本地的离线数据文件夹中;
所述可行性判断单元,用于以预设频率判断上传是否可行,直至上传可行;
所述数据对象获取单元,用于获取所述离线数据文件夹中的数据对象;
所述上传单元,用于通过kotlin将所述数据对象中的数据上传。
可选的,所述可行性判断单元,包括:
网络与文件夹判断子单元,用于判断网络是否可用,并检查所述离线数据文件夹是否为空;
空间判断子单元,用于判断所述离线数据文件夹中的数据对象所占空间大小是否超过预设大小;
网络提醒子单元,用于提醒用户检查并开启网络;
确认子单元,用于判断上传可行。
可选的,所述数据对象获取单元,包括:
管道创建子单元,用于创建协程管道,并设置所述协程管道的预设任务量;
任务添加子单元,用于遍历所述离线数据文件夹中的数据对象,并将每一个数据对象作为一个上传任务,添加到所述协程管道中。
可选的,所述装置还包括:
任务量判断单元,用于判断所述协程管道中的上传任务是否超过所述预设任务量;
添加暂停单元,用于暂停上传任务的添加,直至所述协程管道中的上传任务小于所述预设任务量;
若否,则添加上传任务。
可选的,所述上传单元包括:
上传函数调用子单元,用于通过kotlin反射的方式调用所述数据对象中的上传函数,以上传所述数据对象;
回调函数调用子单元,用于通过kotlin反射的方式调用所述数据对象中的回调函数。
可选的,所述装置还包括:
数据对象删除单元,用于删除所述离线数据文件夹中的所述数据对象。
本申请公开了一种基于kotlin的数据离线上传方法及装置。当数据上传失败时,通过kotlin获取数据的数据类型集,并与数据一起作为一个数据对象,存入位于本地的离线数据文件夹。之后以预设频率判断上传是否可行,如果是,则获取离线数据文件夹中的数据对象,通过kotlin将数据对象中的数据上传。其中数据类型集包括上传函数和回调函数的函数名、参数,用以通过kotlin上传数据,如此能够使上传数据的流程成为一个通用的处理流程,当新增上传数据种类时,无需针对不同种类数据去做不同处理,解决了随数据种类增多导致的开发量大、维护困难的问题。此外,kotlin获取函数名及参数时,还能避免硬编码的弊端。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种基于kotlin的数据离线上传方法的流程示意图;
图2为本申请实施例公开的另一种基于kotlin的数据离线上传方法的流程示意图;
图3为本申请实施例公开的一种基于kotlin的数据离线上传装置的结构示意图。
具体实施方式
在描述本实施例所述的方法前,为了使本申请文件更加易懂,下面将对于本申请文件中的一些专业术语、Kotlin的实现环境和特性做解释。
本申请基于编程语言Kotlin,应用于android应用开发。反射是一种存在于Kotlin中的可以动态执行程序函数的方式。反射调用函数需要用到函数名、参数名、参数值(因为函数可能有多个参数,需要根据参数名去一一对应传入参数的值),例如id是参数名,id的实际值就是参数值。硬编码指,代码在某一处被直接嵌入,在编译器中无法被链接到,硬编码问题不利于代码的维护,而kotlin的语言特性可以获取到函数名及参数,能够有效避免硬编码的问题。动态执行指程序执行到某一处时,根据传入的函数名、参数、参数值去决定执行某一个函数。相对地,静态执行是指代码编译好后已经确定执行的部分。协程是kotlin提供的一种可以并行执行任务的技术,类似于线程,启动多个协程可以同时执行多个任务。协程管道是协程之间通信的桥梁,一个协程可以向管道中不断添加消息,另一个协程可以从管道中取出消息。此外,回调函数是一个负责上传成功后的处理的函数。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一:本申请公开了一种基于kotlin的数据离线上传方法。
具体的,请参阅图1,本实施例公开的一种基于kotlin的数据离线上传方法包括以下步骤:
步骤101:当数据上传失败时,通过kotlin获取所述数据的数据类型集。
在本实施例所述的方法中,所述数据类型集包括上传函数的函数名、上传函数的参数列表、回调函数的函数名和回调函数的参数列表。
在本实施例所述的方法中,作为一种可选的方法,当由于网络不通等因素上传数据失败时,可以利用kotlin的函数引用来获取数据类型集。以便后续数据上传步骤中,利用kotlin反射调用函数进行上传和回调。
步骤102:将所述数据和所述数据类型集作为一个数据对象,存入位于本地的离线数据文件夹中。
在本实施例所述的方法中,可以将一个数据对象视为一次离线上传操作,当上传失败时,就把这个离线数据对象存储在离线数据文件夹中。其中,作为一种可选的方法,可以使用对象序列化的方式进行数据的存储,通俗地说,序列化就是把这个数据对象转化为数据流的形式保存起来。常用的数据类型,例如字符串、数字等都可以被序列化。
在本实施例所述的方法中,区别于使用Sqlite数据库等本地存储技术,本实施例所述方法中的序列化的存储方式简单易用,避免了复杂的数据处理过程。其中,所述序列化的方式有多种,包括json字符串、Serilizable、Parcelable等,在此不对本实施例中序列化的方式做具体限定,能够实现数据对象的序列化即可。
步骤103:以预设频率判断上传是否可行,直至上传可行。则进入步骤104。
在本实施例所述的方法中,作为一种可选的方法,先以预设频率判断网络是否可用,并检查离线数据文件夹是否为空。若网络不可用或离线数据文件夹为空,说明网络状态依旧无法上传数据,或没有需要上传的数据,因此就不用执行后续的数据上传步骤了。
其中,所述预设频率可以根据用户的需求进行设置,例如每一分钟一次。在此不对预设频率的数值做具体限定,不影响本实施例所述方法中的后续步骤即可。
其中,判断网络可用和离线数据文件夹是否为空的顺序可以为一先一后,也可以为同时进行,在此不对二者的操作顺序做具体限定,能够对二者都进行判断即可。
在本实施例所述的方法中,当网络可用且所述离线数据文件夹不为空时,判断离线数据文件夹中的数据对象所占空间大小是否超过预设大小。如果是,则提醒用户检查并开启网络,如果否,则判断上传可行。因为网络长期处于不可以状态时,离线数据文件夹中的数据将持续增多,为防止过多的数据导致本地存储空间不足,当离线数据达到一定量时,须对用户进行提醒。作为一种可选的方法,所述预设大小可以根据移动设备自身的存储空间大小进行设置。
步骤104:获取所述离线数据文件夹中的数据对象。
在本实施例所述的方法中,作为一种可选的方法,先创建协程管道,并设置协程管道的预设任务量,遍历离线数据文件夹中的数据对象,并将每一个数据对象作为一个上传任务,添加到协程管道中。其中,作为一种可选的方法,与序列化相反,可以使用数据反序列化的方式进行数据对象的获取(读取),通俗地说,反序列化就是把数据流转化为数据对象的形式加以读取。
在本实施例所述的方法中,可以在上传任务的添加过程中,判断协程管道中的上传任务是否超过预设任务量。若是,则暂停上传任务的添加,直至协程管道中的上传任务小于预设任务量。其中,所述预设任务量为协程管道中允许存在的任务量限制,当协程管道中的任务量超过这个限制时,便不能再向协程管道中添加上传任务。否则,就不断地向协程管道中添加上传任务。预设任务量用于控制同时进行上传任务的数量,防止同时进行的上传任务过多而影响移动设备的性能。
作为一种可选的方法,所述预设任务量可以根据用户需求进行设置,在此不对预设任务量的数值做具体限定,能够在不影响移动设备性能的同时,完成后续的数据上传步骤即可。
在本实施例所述的方法中,作为一种可选的方法,在上述步骤操作完成时,从离线数据文件夹里删除掉刚刚添加到协程管道中的数据对象,待上传失败后再重新添加。因为在本实施例所述的方法中,需要以预设频率执行步骤103从而进行后续步骤,若在数据上传成功后再删除本地的数据对象,可能导致该数据在上传过程中,由于没有删除而被重复上传。
步骤105:通过kotlin将所述数据对象中的数据上传。
在本实施例所述的方法中,作为一种可选的方法,可以通过kotlin反射的方式调用所述数据对象中的上传函数,以上传所述数据对象。当所述数据对象上传成功时,通过kotlin反射的方式调用所述数据对象中的回调函数。
相比于直接存储http请求的请求报文以进行离线上传和使用java反射,本实施例所述的方法存储的内容较少、能解决上传成功后的回调问题且能够避免java反射带来的硬编码问题。
本实施例所述方法利用kotlin引用函数来获取函数名及参数,避免了硬编码的弊端,有利于代码的维护。通过kotlin反射调用上传函数和回调函数的方式,使数据上传流程具有通用性,能够不用在新增上传数据种类时,针对不同种类数据做不同处理,从而解决了随数据种类增多导致的开发量大、维护困难的问题。
实施例二:本申请公开了另一种基于kotlin的数据离线上传方法,请参阅图2,本实施例所述方法针对数据上传的整体过程做介绍。
步骤201:以预设频率判断网络是否可用。若是,则进入步骤202,若否,则进入步骤201。
步骤202:检查离线数据文件夹是否为空。若是,则进入步骤203,若否,则进入步骤201。
步骤203:判断离线数据文件夹中的数据对象所占空间大小是否超过预设大小。若是,则进入步骤204,若否,则进入步骤205。
步骤204:提醒用户检查并开启网络。
步骤205:遍历离线数据文件夹中的数据对象,并将每一个数据对象作为一个上传任务,添加到协程管道中。
步骤206:判断协程管道中的上传任务是否超过预设任务量。若是,则进入步骤207,若否,则进入步骤208。
步骤207:暂停上传任务的添加,直至协程管道中的上传任务小于预设任务量。
步骤208:从离线数据文件夹里删除掉上述步骤中添加到协程管道中的数据对象。
步骤209:通过kotlin将所述数据对象中的数据上传。
本实施例所述方法针对数据上传的整体过程做介绍。本实施例所述的步骤为通过kotlin实现的数据上传流程,其具有通用性,能够不用在新增上传数据种类时,针对不同种类数据做不同处理,从而解决了随数据种类增多导致的开发量大、维护困难的问题。
基于上述实施例公开的一种基于kotlin的数据离线上传方法,本实施例对应公开了一种基于kotlin的数据离线上传装置。请参阅图3,所述一种基于kotlin的数据离线上传装置包括:类型集获取单元301、数据对象存储单元302、可行性判断单元303、数据对象获取单元304和上传单元305;
所述类型集获取单元301,用于当数据上传失败时,通过kotlin获取所述数据的数据类型集;所述数据类型集包括上传函数的函数名、上传函数的参数列表、回调函数的函数名和回调函数的参数列表;
所述数据对象存储单元302,用于将所述数据和所述数据类型集作为一个数据对象,存入位于本地的离线数据文件夹中;
所述可行性判断单元303,用于以预设频率判断上传是否可行,直至上传可行;
所述数据对象获取单元304,用于获取所述离线数据文件夹中的数据对象;
所述上传单元305,用于通过kotlin将所述数据对象中的数据上传。
可选的,所述可行性判断单元303,包括:
网络与文件夹判断子单元,用于判断网络是否可用,并检查所述离线数据文件夹是否为空;
空间判断子单元,用于判断所述离线数据文件夹中的数据对象所占空间大小是否超过预设大小;
网络提醒子单元,用于提醒用户检查并开启网络;
确认子单元,用于判断上传可行。
可选的,所述数据对象获取单元304,包括:
管道创建子单元,用于创建协程管道,并设置所述协程管道的预设任务量;
任务添加子单元,用于遍历所述离线数据文件夹中的数据对象,并将每一个数据对象作为一个上传任务,添加到所述协程管道中。
可选的,所述装置还包括:
任务量判断单元,用于判断所述协程管道中的上传任务是否超过所述预设任务量;
添加暂停单元,用于暂停上传任务的添加,直至所述协程管道中的上传任务小于所述预设任务量;
若否,则添加上传任务。
可选的,所述上传单元305包括:
上传函数调用子单元,用于通过kotlin反射的方式调用所述数据对象中的上传函数,以上传所述数据对象;
回调函数调用子单元,用于通过kotlin反射的方式调用所述数据对象中的回调函数。
可选的,所述装置还包括:
数据对象删除单元,用于删除所述离线数据文件夹中的所述数据对象。
本说明书中实施例采用递进的方式描述。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本说明书中实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于kotlin的数据离线上传方法,其特征在于,包括:
当数据上传失败时,通过kotlin获取所述数据的数据类型集;所述数据类型集包括上传函数的函数名、上传函数的参数列表、回调函数的函数名和回调函数的参数列表;
将所述数据和所述数据类型集作为一个数据对象,存入位于本地的离线数据文件夹中;
以预设频率判断上传是否可行,直至上传可行;
获取所述离线数据文件夹中的数据对象;
通过kotlin将所述数据对象中的数据上传。
2.根据权利要求1所述的方法,其特征在于,所述判断上传是否可行,包括:
判断网络是否可用,并检查所述离线数据文件夹是否为空;
如果网络可用且所述离线数据文件夹不为空,则判断所述离线数据文件夹中的数据对象所占空间大小是否超过预设大小;
如果是,则提醒用户检查并开启网络;
如果否,则判断上传可行。
3.根据权利要求1所述的方法,其特征在于,所述获取所述离线数据文件夹中的数据对象,包括:
创建协程管道,并设置所述协程管道的预设任务量;
遍历所述离线数据文件夹中的数据对象,并将每一个数据对象作为一个上传任务,添加到所述协程管道中。
4.根据权利要求3所述的方法,其特征在于,在通过kotlin将所述数据对象上传前,所述方法还包括:
判断所述协程管道中的上传任务是否超过所述预设任务量;
若是,则暂停上传任务的添加,直至所述协程管道中的上传任务小于所述预设任务量;
若否,则添加上传任务。
5.根据权利要求1所述的方法,其特征在于,所述通过kotlin将所述数据对象上传,包括:
通过kotlin反射的方式调用所述数据对象中的上传函数,以上传所述数据对象;
当所述数据对象上传成功时,通过kotlin反射的方式调用所述数据对象中的回调函数。
6.根据权利要求1-5任一项所述的方法,其特征在于,在获取所述离线数据文件夹中的数据对象后,所述方法还包括:删除所述离线数据文件夹中的所述数据对象。
7.一种基于kotlin的数据离线上传装置,其特征在于,包括:类型集获取单元、数据对象存储单元、可行性判断单元、数据对象获取单元和上传单元;
所述类型集获取单元,用于当数据上传失败时,通过kotlin获取所述数据的数据类型集;所述数据类型集包括上传函数的函数名、上传函数的参数列表、回调函数的函数名和回调函数的参数列表;
所述数据对象存储单元,用于将所述数据和所述数据类型集作为一个数据对象,存入位于本地的离线数据文件夹中;
所述可行性判断单元,用于以预设频率判断上传是否可行,直至上传可行;
所述数据对象获取单元,用于获取所述离线数据文件夹中的数据对象;
所述上传单元,用于通过kotlin将所述数据对象中的数据上传。
8.根据权利要求7所述的装置,其特征在于,所述可行性判断单元,包括:
网络与文件夹判断子单元,用于判断网络是否可用,并检查所述离线数据文件夹是否为空;
空间判断子单元,用于判断所述离线数据文件夹中的数据对象所占空间大小是否超过预设大小;
网络提醒子单元,用于提醒用户检查并开启网络;
确认子单元,用于判断上传可行。
9.根据权利要求7所述的装置,其特征在于,所述数据对象获取单元,包括:
管道创建子单元,用于创建协程管道,并设置所述协程管道的预设任务量;
任务添加子单元,用于遍历所述离线数据文件夹中的数据对象,并将每一个数据对象作为一个上传任务,添加到所述协程管道中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
任务量判断单元,用于判断所述协程管道中的上传任务是否超过所述预设任务量;
添加暂停单元,用于暂停上传任务的添加,直至所述协程管道中的上传任务小于所述预设任务量;
若否,则添加上传任务。
CN202310732924.XA 2023-06-20 2023-06-20 一种基于kotlin的数据离线上传方法及装置 Active CN116506428B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310732924.XA CN116506428B (zh) 2023-06-20 2023-06-20 一种基于kotlin的数据离线上传方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310732924.XA CN116506428B (zh) 2023-06-20 2023-06-20 一种基于kotlin的数据离线上传方法及装置

Publications (2)

Publication Number Publication Date
CN116506428A true CN116506428A (zh) 2023-07-28
CN116506428B CN116506428B (zh) 2023-09-08

Family

ID=87316803

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310732924.XA Active CN116506428B (zh) 2023-06-20 2023-06-20 一种基于kotlin的数据离线上传方法及装置

Country Status (1)

Country Link
CN (1) CN116506428B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US20050102370A1 (en) * 2003-10-23 2005-05-12 Yun Lin Truth on client persistent caching
US7096465B1 (en) * 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
WO2007063422A2 (en) * 2005-12-01 2007-06-07 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US20090210631A1 (en) * 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
CN106776953A (zh) * 2016-12-04 2017-05-31 国云科技股份有限公司 一种在线文件云存储系统的实现方法
CN106873952A (zh) * 2015-12-14 2017-06-20 航天信息股份有限公司 移动端网页开发的数据处理系统和方法、及应用装置
CN112351094A (zh) * 2020-11-02 2021-02-09 深圳市安软科技股份有限公司 一种网页推送方法、装置、电子设备及存储介质
US11089133B1 (en) * 2017-11-22 2021-08-10 Amazon Technologies, Inc. Synchronizing data with delayed subscriptions
CN116151827A (zh) * 2023-04-04 2023-05-23 北京银联金卡科技有限公司 一种数字钱包安全框架及基于安全框架的双离线交易方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096465B1 (en) * 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US20050102370A1 (en) * 2003-10-23 2005-05-12 Yun Lin Truth on client persistent caching
WO2007063422A2 (en) * 2005-12-01 2007-06-07 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US20090210631A1 (en) * 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
CN106873952A (zh) * 2015-12-14 2017-06-20 航天信息股份有限公司 移动端网页开发的数据处理系统和方法、及应用装置
CN106776953A (zh) * 2016-12-04 2017-05-31 国云科技股份有限公司 一种在线文件云存储系统的实现方法
US11089133B1 (en) * 2017-11-22 2021-08-10 Amazon Technologies, Inc. Synchronizing data with delayed subscriptions
CN112351094A (zh) * 2020-11-02 2021-02-09 深圳市安软科技股份有限公司 一种网页推送方法、装置、电子设备及存储介质
CN116151827A (zh) * 2023-04-04 2023-05-23 北京银联金卡科技有限公司 一种数字钱包安全框架及基于安全框架的双离线交易方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李兵;付开宇;方小二;: "基于移动GIS的离在线一体化数据采集系统的设计与实现", 智能城市, no. 06 *
李暑, 林峰: "基于XML的对象离线管理的研究和实现", 计算机工程与应用, no. 30 *

Also Published As

Publication number Publication date
CN116506428B (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
CN106909411B (zh) 一种文件更新方法及装置
CN110928653B (zh) 跨集群任务的执行方法、装置、计算机设备和存储介质
CN110602165B (zh) 政务数据同步方法、装置、系统、计算机设备和存储介质
CN108255708B (zh) 测试环境中访问生产文件的方法、装置、存储介质及设备
CN111338829B (zh) 远程过程调用服务的调用方法及装置
CN109614271A (zh) 多个集群数据一致性的控制方法、装置、设备及存储介质
CN108132832B (zh) 应用程序启动方法和装置
CN103647811A (zh) 一种实现应用访问后台服务的方法和装置
CN116506428B (zh) 一种基于kotlin的数据离线上传方法及装置
CN111294377A (zh) 一种依赖关系的网络请求发送方法、终端装置及存储介质
CN111857797B (zh) 一种镜像构建方法、系统及相关装置
CN112559067A (zh) 一种动态库加载方法及相关装置
CN108809763B (zh) 一种网络性能参数采集方法、终端装置及存储介质
CN108052335B (zh) 数据管理方法、装置、计算设备及存储介质
CN112416555B (zh) 一种客户端重启方法及设备、装置、存储介质
CN106528192A (zh) 一种业务逻辑更新方法和装置
CN112988277B (zh) 规则文件加载方法、装置、服务器及介质
CN111190725B (zh) 任务处理方法、装置、存储介质及服务器
CN114238352A (zh) 一种微服务业务处理方法及相关装置
CN114116256A (zh) 变量调用方法、装置、计算机设备和存储介质
CN106934555B (zh) 工作流的组织方法及装置、计算机设备及存储介质
CN113535143A (zh) 堆栈信息处理方法、装置、电子设备和存储介质
CN112579189A (zh) 配置文件更新方法及装置
CN116643846B (zh) 基于容器集群编排管理平台的定时任务处理方法和装置
CN113946333B (zh) 一种移动端逻辑脚本执行方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240808

Address after: 1201, 12th Floor, Building 3, No. 2 Academy South Road, Haidian District, Beijing 100080

Patentee after: BEIJING SOHU NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 610095 No. 907, floor 9, unit 1, building 1, No. 151, Tianfu Second Street, high tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan Province

Patentee before: Chengdu Bodian Technology Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right