具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例一种预览数据的方法的流程示意图,如图1所示,包括:
S101、子进程对SDK恢复的数据进行加载。
需要说明的是,这里的所说的SDK恢复的数据为预览控件支持的数据格式的数据,预览控制支持的数据格式和现在技术一样可以包括JPG和doc等公知的格式。
S102、子进程判断是否对SDK恢复的数据加载成功,若判断结果为是,则执行步骤S103子进程向父进程发送SDK恢复的数据加载成功的消息,若判断结果为否,则可以执行步骤S104子进程终止加载SDK恢复的数据。
S103、子进程向父进程发送SDK恢复的数据加载成功的消息。
可以理解的是,子进程向父进程发送SDK恢复的数据加载成功的消息,目的是通知父进程SDK恢复是数据是完整的。
需要说明的是,子进程向父进程发送SDK恢复的数据加载成功的消息的步骤可以是:子进程建立广播消息中心类(NSDistributed Notification Center)消息,并向父进程发送所述NSDistributed Notification Center消息,所述NSDistributed Notification Center消息包含SDK恢复的数据加载成功的消息。
需要说明的是,NSDistributed Notification Center的中文意思广播消息中心类,是一个参考翻译,在发明实施例中以NSDistributed Notification Center为准。
S104、子进程终止加载SDK恢复的数据。
需要说明的是,子进程终止加载SDK恢复的数据,可以是子进程在加载SDK恢复不完整的数据时,子进程因数据恢复不完整而中止程序,但子进程中止程序后,即,子进程可能卡死后或者挂掉后,不会对父进程和预览控制造成影响。
S105、父进程判断在预设的时间内是否接收到子进程发送的SDK恢复的数据加载成功的消息,若判断结果为是,则执行步骤106父进程加载并显示SDK恢复的数据,若判断结果为否,则可以执行步骤S107终止子进程。
S106、父进程加载并显示SDK恢复的数据。
可以理解的是,父进程加载并显示SDK恢复的数据,也就是SDK恢复的数据是完整的,不会让预览控件崩溃和数据恢复程序中止。
需要说明的,父进程加载并显示SDK恢复的数据,之前父进程会把SDK恢复的数据解析成预览控制支持的数据格式的数据,此过程采用现有技术的方法,此处不用限定。预览控制支持的数据格式可以包括JPG和doc等公知的格式。
S107、终止子进程。
可以理解的是,父进程在预设的时间内没有接收到子进程发送的SDK恢复的数据加载成功的消息,就是说,子进程加载的SDK恢复的数据是不完整的,如果父进程显示这个不完整的数据,则会让预览控件崩溃和数据恢复程序中止,父进程则可以终止子进程,当下次预览再重新开启一个子进程。
本实施例中,子进程对底层软件开发包SDK恢复的数据进行加载,并判断是否对SDK恢复的数据加载成功,若判断结果为是,则向父进程发送所述SDK恢复的数据加载成功的消息,若判断结果为否,则终止加载所述SDK恢复的数据,父进程判断在预设的时间内是否接收到子进程发送的所述SDK恢复的数据加载成功的消息,若判断结果为是,则加载并显示所述SDK恢复的数据。这样父进程只会显示加载成功的数据,从而有效解决预览控件崩溃和预览程序中止的问题。
图2是本明发实施例提供的一种预览数据的方法的另一实施例的流程示意图,如图2所示,包括:
S201、父进程向子进程发送SDK恢复的数据。
S202、子进程接收父进程发送的SDK恢复的数据,并将SDK恢复的数据解析成预览控制支持的数据格式的数据。
需要说明的是,预览控制支持的数据格式和现在技术一样可以包括JPG和doc等公知的格式。
S203、子进程对SDK恢复的数据进行加载。
S204、子进程判断是否对SDK恢复的数据加载成功,若判断结果为是,则执行步骤S205子进程向父进程发送SDK恢复的数据加载成功的消息,若判断结果为否,则执行步骤S206子进程终止加载SDK恢复的数据。
S205、子进程向父进程发送SDK恢复的数据加载成功的消息。
可以理解的是,子进程向父进程发送SDK恢复的数据加载成功的消息,目的是通知父进程SDK恢复是数据是完整的。
需要说明的是,子进程向父进程发送SDK恢复的数据加载成功的消息的步骤可以是:子进程建立广播消息中心类(NSDistributed Notification Center)消息,并向父进程发送所述NSDistributed Notification Center消息,所述NSDistributed Notification Center消息包含SDK恢复的数据加载成功的消息。
需要说明的是,NSDistributed Notification Center的中文意思广播消息中心类,是一个参考翻译,在发明实施例中以NSDistributed Notification Center为准。
S206、子进程终止加载SDK恢复的数据。
可以理解的是,子进程终止加载SDK恢复的数据,是指子进程在加载SDK恢复不完整的数据时,子进程因数据恢复不完整而中止程序。
需要说明的是,子进程中止程序后,不会对父进程和预览控制造成影响。
S207、父进程判断在预设的时间内是否接收到子进程发送的SDK恢复的数据加载成功的消息,若判断结果为是,则执行步骤S208父进程加载并显示SDK恢复的数据,若判断结果为否,则执行步骤S209终止子进程。
S208、父进程加载并显示SDK恢复的数据。
可以理解的是,父进程加载并显示SDK恢复的数据,也就是SDK恢复的数据是完整的,不会让预览控件崩溃和数据恢复程序中止。
需要说明的,父进程加载并显示SDK恢复的数据,之前父进程会把SDK恢复的数据解析成预览控制支持的数据格式的数据,此过程采用现有技术的方法,此处不用限定。预览控制支持的数据格式可以包括JPG和doc等公知的格式。
S209、终止子进程。
可以理解的是,父进程在预设的时间内没有接收到子进程发送的SDK恢复的数据加载成功的消息,就是说,子进程加载的SDK恢复的数据是不完整的,如果父进程显示这个不完整的数据,则会让预览控件崩溃和数据恢复程序中止,父进程则可以终止子进程,当下次预览再重新开启一个子进程。
本实施例中,增加了子进程把底层软件开发包SDK恢复的数据解析成预览控件能预览的数据格式的数据,这样可以让子进程更有效地对解析后的数据进行加载,有效的解决预览控件崩溃和恢复数据的程序中止的问题。
图3是本明发实施例一种预览数据的方法的另一实施例的流程示意图,如图3所示,包括:
S301、父进程使用状态机(NSCondition)标识父进程为忙状态。
需要说明的是,父进程使用NSCondition标示父进程为忙状态,父进程为忙状态时是不会执行其它操作,以保证父进程与子进程在预览数据过程是同步操作的,同时,还可以解决因步骤S306中,采用(NSDistributed Notification Center)向父进程发送加载成功的消息的过程造成的异步问题。具体解决过程是,当子进程加载SDK恢复的数据的过程中,父进程使用NSCondition标示父进程为忙状态,父进程为忙状态时是不会执行其它任务,以保证父进程与子进程在消息传输过程中是同步。
S302、父进程向子进程发送SDK恢复的数据。
需要说明的是,步骤S301以及步骤S302可以同时执行,或者先执行步骤S302再执行步骤S301。
S303、子进程接收父进程发送的SDK恢复的数据,并将SDK恢复的数据解析成预览控制支持的数据格式的数据。
需要说明的是,预览控制支持的数据格式和现在技术一样可以包括JPG和doc等公知的格式。
S304、子进程对SDK恢复的数据进行加载。
S305、子进程判断是否对SDK恢复的数据加载成功,若判断结果为是,则执行步骤S306子进程向父进程发送SDK恢复的数据加载成功的消息,若判断结果为否,则执行步骤S307子进程终止加载SDK恢复的数据。
S306、子进程向父进程发送SDK恢复的数据加载成功的消息。
可以理解的是,子进程向父进程发送SDK恢复的数据加载成功的消息,目的是通知父进程SDK恢复是数据是完整的。
需要说明的是,子进程向父进程发送SDK恢复的数据加载成功的消息的步骤可以是:子进程建立广播消息中心类(NSDistributed Notification Center)消息,并向父进程发送所述NSDistributed Notification Center消息,所述NSDistributed Notification Center消息包含SDK恢复的数据加载成功的消息。
需要说明的是,NSDistributed Notification Center的中文意思广播消息中心类,是一个参考翻译,在发明实施例中以NSDistributed Notification Center为准。
S307、子进程终止加载SDK恢复的数据。
可以理解的是,子进程终止加载SDK恢复的数据,是指子进程在加载SDK恢复不完整的数据时,子进程因数据恢复不完整而中止程序,即,子进程可能卡死或者挂掉。
需要说明的是,子进程中止程序后,不会对父进程和预览控制造成影响。
S308、父进程判断在预设的时间内是否接收到子进程发送的SDK恢复的数据加载成功的消息,若判断结果为是,则执行步骤S208父进程加载并显示SDK恢复的数据,若判断结果为否,则执行步骤S209终止子进程。
S309、父进程加载并显示SDK恢复的数据。
可以理解的是,父进程加载并显示SDK恢复的数据,也就是SDK恢复的数据是完整的,不会让预览控件崩溃和数据恢复程序中止。
需要说明的,父进程加载并显示SDK恢复的数据,之前父进程会把SDK恢复的数据解析成预览控制支持的数据格式的数据,此过程采用现有技术的方法,此处不用限定。预览控制支持的数据格式可以包括JPG和doc等公知的格式。
S310、终止子进程。
可以理解的是,父进程在预设的时间内没有接收到子进程发送的SDK恢复的数据加载成功的消息,就是说,子进程加载的SDK恢复的数据是不完整的,如果父进程显示这个不完整的数据,则会让预览控件崩溃和数据恢复程序中止,父进程则可以终止子进程,当下次预览再重新开启一个子进程。
需要说明的是,当父进程执行步骤S308后,父进程还可以使用NSCondition标识父进程为闲状态,这时父进程就可以执行其它操作。
本实施例中,增加了父进程使用NSCondition父进程的状态,以保证父进程与子进程在消息传输过程中是同步的,同时有效的解决预览控件崩溃和恢复数据的程序中止的问题。
图4是本发明实施例提供的一种预览数据的装置的结构示意图,如图4 所示,本发明的实施例提供的预览控件包括子进程单元和进程单元,其中:
子进程单元41,用于对SDK恢复的数据进行加载,并判断是否对SDK恢复的数据加载成功,若判断结果为是,则向父进程单元42发送所述SDK恢复的数据加载成功的消息,若判断结果为否,则终止加载所述SDK恢复的数据。
需要说明的是,这里所说的SDK恢复的数据为预览控件支持的数据格式的数据。
需要说明的是,子进程单元还可以包括解析单元411和加载单元412,其中:
解析单元411,用于接收由父进程单元42发送的SDK恢复的数据,并将所述SDK恢复的数据解析成预览控制支持的数据格式的数据。
加载单元412,用于对SDK恢复的数据进行加载,并判断是否加载成功,若判断结果为是,则向父进程单元发送所述SDK恢复的数据加载成功的消息,若判断结果为否,则终止加载所述SDK恢复的数据。
父进程单元42,用于判断在预设的时间内是否接收到子进程单元41发送的所述SDK恢复的数据加载成功的消息,若判断结果为是,则加载并显示所述SDK恢复的数据。
需要说明的是,父进程单元42可以包括:发送单元421和判断单元422,其中:
发送单元421,用于向子进程单元41发送的SDK恢复的数据。
判断单元422,用于判断在预设的时间内是否接收到子进程单元41发送的所述SDK恢复的数据加载成功的消息,若判断结果为是,则加载并显示所述SDK恢复的数据,若判断结果为否,则终止所述子进程单元41的程序。
需要说明的是,父进程单元42还可以包括:状态机423。
状态机423,用于标识父进程单元42为忙状态。
需要说明的是,父进程单元42使用NSCondition标示父进程单元32为忙状态,同时在有限时间里等待子进程单元41的响应消息。会存在分两种情况,一种是正常情况,子进程单元41加载SDK恢复的数据加载成功,发送加载成功的消息给父进程单元42,父进程单元42收到加载成功的消息后,标识父进程单元42闲状态,继续进行其他操作。另一种情况子进程单元41加载SDK恢复的数据失败,这时候父进程单元42在有限时间里,没收到子进程单元41发过来的响应消息,也标识自己闲状态,继续进行其他操作,下次操作时候重新建立子进程单元42,从而以保证父进程单元42与子进程单元41在预览数据过程是同步操作的。
在本实施例中,为了解决现有技术中预览控件存在的问题,通过设置一个子进程单元先对SDK恢复的数据进行加载,加载成功后发送加载成功的消息至父进程单元,并把加载成功的数据发送到父进程单元,由父进程对这个数据进行加载;父进程单元在预设的时间内判断是否接收到子进程单元发送的加载成功的消息,若有,则对子进程单元加载成功的数据进行显示,若无,则终止子进程单元的程序,下次预览再重新开启一个子进程单元,这样就可以有效的解决预览控件崩溃和恢复数据的程序中止的问题。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。