1.一种链接弹幕的方法,其特征在于,包括:定义一个网络链接类型来存储当前的网络类型,并生成网络类型的状态码,所述网络链接类型为由enum关键字定义的枚举类型;
生成Android系统中网络状态的监控类,所述网络状态监控类包括一个子类NetworkChange类,所述NetworkChange类继承于系统的BroadcastReceiver类;
对所述监控类进行实例化和系统注册,其中,实例化所述NetworkChange类并调用系统的registerReceiver函数来注册网络监控;
通过所述registerReceiver函数对所述网络类型的状态码进行监控;
若当前的状态码与之前的状态码相同,网络状态没有发生变化,则保持当前弹幕链接不变;
若当前的状态码与之前的状态码不同,网络状态发生变化,则根据当前状态变化来对网络进行调整并链接弹幕服务器,定义变量NetStatus prevStatus=kNONET,并且将其值初始化为无网络的状态,当从有网络或者强信号网络切换到无信号网络或者弱信号网络时,使用网络底层的超时重连,并且设置更长时间的超时,让底层网络进行重连。
2.根据权利要求1所述的方法,其特征在于,所述定义一个网络链接类型来存储当前的网络类型,并生成网络类型的状态码包括:确定一个枚举变量NetStatus来存储网络类型,其中,所述NetStatus包含了用于指示当前没有网络的kNONET、用于指示当前网络为WIFI的kWIFI和用于指示当前网络为4G网络的k4G;
将所述kNONET、所述kWIFI、所述k4G分别赋值为1、2、3。
3.根据权利要求1所述的方法,其特征在于,所述生成Android系统中网络状态的监控类,所述网络状态监控类包括一个子类NetworkChange类,所述NetworkChange类继承于系统的BroadcastReceiver类包括:生成监控类public class NetworkChange extends BroadcastReceiver;
重载接口来接收网络变化;
判断当前是否连接上了网络;
通过ConnectivityManager属性来判断当前的网络状态;
定义一个NetworkInfo对象info,并获取当前的网络信息。
4.根据权利要求3所述的方法,其特征在于,所述定义一个NetworkInfo对象info,并获取当前的网络信息包括:
通过系统函数getParcelableExtra来获取当前网络信息,传入参数为ConnectivityManager.EXTRA_NETWORK_INFO;
判断当前的网络为WIFI网络、4G网络或者没有网络。
5.根据权利要求4所述的方法,其特征在于,所述判断当前的网络为WIFI网络、4G网络或者没有网络包括:
通过info的接口getType可以得到当前的网络类型;
如果网络类型是ConnectivityManager.TYPE_WIFI,将网络状态类型设置为WIFI网络;
如果网络类型是ConnectivityManager.TYPE_MOBILE,将网络状态类型设置为4G网络;
如果当前没有网络,将网络状态类型设置为断开状态。
6.根据权利要求1‑5中任一所述的方法,其特征在于,所述对所述监控类进行实例化和系统注册,其中,实例化所述NetworkChange类并调用系统的registerReceiver函数来注册网络监控包括:
创建一个接口IntentFilter filter=new IntentFilter();
调用IntentFilter的addAction函数,并将传入参数设置为ConnectivityManager.CONNECTIVITY_ACTION;
实例化所述NetworkChange类得到NetworkChange net=new NetworkChange();
调用系统的registerReceiver函数来注册网络监控。
7.根据权利要求1‑5中任一所述的方法,其特征在于,所述根据当前状态变化来对网络进行变化,在程序启动时定义变量NetStatus prevStatus=kNONET,并且将其值初始化为无网络的状态包括:
调用函数pipe.Break()来断开当前的网络链接;
调用函数int nRet=connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr))进行网络链接。
8.一种移动终端,其特征在于,包括:定义单元,用于定义一个网络链接类型来存储当前的网络类型,并生成网络类型的状态码,所述网络链接类型为由enum关键字定义的枚举类型;
生成单元,用于生成Android系统中网络状态的监控类,所述网络状态监控类包括一个子类NetworkChange类,所述NetworkChange类继承于系统的BroadcastReceiver类;
注册单元,用于对所述监控类进行实例化和系统注册,其中,实例化所述NetworkChange类并调用系统的registerReceiver函数来注册网络监控;
监控单元,用于通过所述registerReceiver函数对所述网络类型的状态码进行监控;
保持单元,若当前的状态码与之前的状态码相同,网络状态没有发生变化,则用于保持当前弹幕链接不变;
调整单元,若当前的状态码与之前的状态码不同,网络状态发生变化,则用于根据当前状态变化来对网络进行调整并链接弹幕服务器,定义变量NetStatus prevStatus=kNONET,并且将其值初始化为无网络的状态,当从有网络或者强信号网络切换到无信号网络或者弱信号网络时,使用网络底层的超时重连,并且设置更长时间的超时,让底层网络进行重连。
9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1‑7任意一项所述的方法。