文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院网络编程J2EE/J2MEj2me进度条与线程化模型
精品广告
推荐TOP10
·J2EE Web开发技术期待一次新的技术变革
·J2ME程序开发初学者快速入门的九大要点
·使用技巧:J2ME中程序优化的十个小方法
·RMS从入门到精通之一
·J2EE应用程序中SQL语句的自动构造方法
·解决J2EE系统应用性能问题常用优化项目
·J2EE实用技巧:提升JSP应用程序的绝招
·J2ME内存优
·J2ME简介
·J2EE技术
阅读TOP10
·使用platformRequest()自动更新MIDlet套件
·J2EE基础:Weblogic服务器体系结构介绍
·RMS从入门到精通之一
·J2EE Web的新变革:Apusic OperaMasks
·J2EE技术
·用J2ME在移动设备上实现动画的实例讲解
·J2EE应用程序中SQL语句的自动构造方法
·.NET vs J2EE——面对SOA的荒谬与误解
·Spring 系列:Spring JMS 消息处理
·三重DES加密程序

j2me进度条与线程化模型

日期:2008年6月23日 作者: 查看:[大字体 中字体 小字体]


j2me进度条与线程化模型

作者:FavoYang       Email:favoyang@yahoo.com 欢迎交流
Keyworld:线程化模型 j2me UI设计

内容提要:
本文研究如何建立一个方便使用的线程化模型,这个线程化模型由前台的进度条UI 和后台的背景线程组成。

版权声明:
本文同时发表在www.j2medev.com和我的Blog(http://blog.csdn.net/alikeboy)上,如果需要转载,有三个途径:1)联系我并经我同意;2)和www.j2medev.com有转载文章合作协议的 3)通过Rss聚合我的Blog。另外转载需要全文转发(包括文章的头部),不要断章取义。

正文:

解决的问题

在j2me的UI体系中,UI操作是在一个独立的线程中运行的。往往在api doc中要求程序员对接口方法立即返回。也就是说非阻塞的。你必须开启一个独立的线程来完成你自定义的复杂的工作,比如联网等可能发生阻塞的io操作。新的线程如果不和用户交流,告诉用户线程正在工作的话,将会显现的非常不友好。用户可能执行别的操作而扰乱程序的正常运行。一个简单的方法是提供一个进度条,这样用户就会愿意等待上一会,直到程序运行出结果。为了将程序员从前台进度条与后台线程的通信中解脱出来,专心于后台线程的开发,有必要设计一个进度条线程模型。

应该注意到进度条有多种的形式:
 
A, 动画形式进度条,仅表示程序正在运行(自维护的)
B, 可交互增量形式的进度条,后台线程通过调用进度条的相应方法在程序运行中不断的改变进度条的状态
C, 进度条的表现形式应该灵活,不要固定其实现
D, 进度条对象要重复利用

j2me进度条与线程化模型(图一)

进度调和后台线程的交流也有好几种情况:
A, 仅仅将进度条绘画在屏幕上,并等后台任务完成后,由后台线程跳转到成功画面。
B, 对于可取消的任务,用户可以通过点击进度条的按钮来试图cancel任务,后台任务应该尽快取消,并跳转到失败的画面
C, 对于不可跳转的任务,用户只有耐心等待
D, 如果背景线程运行失败,应自行跳转到失败的屏幕

进度条的设计(前台)

为了实现进度条的表现的多样性,首先抽象一个接口:
ProgressObserver.java
package com.favo.ui;
import javax.microedition.lcdui.Display;

/**
 * @author Favo
 *
 * 这是仿照Smart Ticket制作的进度条观察者,这个模型的优点是
 * 1,低耦合度。你可以通过Form,Canvas等来实现这个接口
 * 2,支持可中断的任务,因为背景线程是无法强制性中断的,
 * 所以就 没有了在观察者中回调背景线程相应方法的必要,
 * 如果支持可中断的话,可以让背景线程来查询观察者的isStopped()
 * 3,可以说进度条仅仅将自己绘画在屏幕上,他对后台线程毫不关心
 */
public interface ProgressObserver {
 /**
  * 将进度条复位
  */
 public void reset();
 
 /**
  * 将进度条设置最大
  */
 public void setMax();

 /*
  * 将自己绘制在屏幕上,如果进度条要开启自身的线程用于自动更新画面,
  * 也在这里构造并开启绘画线程(常用于动画滚动条)
  */
 public void show(Display display);

 /**

[1] [2] [3] [4] [5] [6] [7] [8] 下一页 

上一篇:再议j2me进度条与线程化模型

下一篇:在J2ME中访问dotnet Web Services


相关软件: 相关文章:
·高达seed模型欣赏
·京剧人物造型欣赏
·3ds max5_0卡通造型时尚创作百例
·微型计算机接口技术原理及应用
·ASP小型会员系统汉化版
·小型超市货物管理系统V1.11
·侠盗猎车:圣安地列斯 完美超大型游戏地图
·血型与性的关系
·Sql Server中Image类型字段在VB.NET中的读写操作
·HP和IBM的机型比较
·CPU型号大全总结
·[华硕]什么软件可测出笔记本内存类型
·词组输入方法--五笔字型
·ORACLE中LONG类型字段的存取

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号