论坛首页 移动开发技术论坛

J2ME网络交互之优化

浏览 2973 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-09   最后修改:2009-06-15

在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

   发表时间:2009-06-19  
线程完了 sleep 下,效果更好
0 请登录后投票
   发表时间:2009-06-19  
longzy 写道

线程完了 sleep 下,效果更好

哈哈,说得好!没错!
0 请登录后投票
   发表时间:2009-07-06  
受用···谢谢
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics