J2ME网络交互之优化

在J2ME的开发中,网络通讯交互是开发中的重点和难点,这里以Http通讯为例,举例说明一些优化的技巧。
1、关闭流
关闭流是非常重要的,特别对S40的机子,S40不像S60那样能自动关闭流,有时在S60的机子跑得好好的软件一拿到S40运行几次网络连接就抛出异常,其中一个原因即是流的处理。
2、异常处理
有时程序读取服务端数据会抛出异常,此时,用户又重新刷新或重新加载数据,用户不断地请求,这样的操作显然是可怕的,可用skip(long l)这个方法来处理,同时结合线程同步,这样便能更好优化网络交互。
3、线程同步
线程同步这里不多说,下面简单用例子来说明处理的过程
HttpThread实现Runnable接口

private HttpThread httpThread;

	public synchronized void httpThreadSubmit() {
		// clean and stop
		if (httpThread != null){
			httpThread.stop();
                                                httpThread = null;
                                }
		httpThread = new HttpThread();
		new Thread(httpThread).start();
	}

  

 

public class HTTPThread implements Runnable {

	
	private boolean isStop;

	public HTTPThread() {
		isStop = false;
	}

	public void run() {
		try {
			// isStop用于处理线程
			if (isStop)
				return;
			// HttpConnection 处理
			// 输出流
			// 读取流并对流进行解析处理,可用isStop在中间中断流
		} catch (Excption e) {
			// 也可加个内存抛出,回收内存System.gc();
			// skip(流长度);
		} finally {
			// 关闭流
			// 关闭HttpConnection
			// 对内存回收等
		}
	}

	public void stop() {
		isStop = true;
	}

}

 

导读
 手机中的重定向问题及处理 http://fonter.iteye.com/blog/400836
 J2ME如何通过cmwap直接访问互连网 http://fonter.iteye.com/blog/400868
 J2ME开发中由WAP网关带来的cookie问题 http://fonter.iteye.com/blog/399105
 安装JAD时提示JAD无效原因之一 http://fonter.iteye.com/blog/400888
解决Eclipse无法调试J2ME程序的配置方法 http://fonter.iteye.com/blog/405697

J2ME模拟器加载RMS时突然失效的原因 http://fonter.iteye.com/blog/407576

J2ME飞信协议分析(初稿) http://fonter.iteye.com/blog/408385

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值