程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> j2me進度條與線程化模型

j2me進度條與線程化模型

編輯:關於JSP

j2me進度條與線程化模型
作者:FavoYang Email:[email protected] 歡迎交流
Keyworld:線程化模型 j2me UI設計
內容提要:
本文研究如何建立一個方便使用的線程化模型,這個線程化模型由前台的進度條UI 和後台的背景線程組成。
版權聲明:
本文同時發表在www.j2medev.com和我的Blog(blog.csdn.net/alikeboy)上,如果需要轉載,有三個途徑:1)聯系我並經我同意;2)和www.j2medev.com有轉載文章合作協議的 3)通過Rss聚合我的Blog。另外轉載需要全文轉發(包括文章的頭部),不要斷章取義。
正文:
解決的問題
在j2me的UI體系中,UI操作是在一個獨立的線程中運行的。往往在api doc中要求程序員對接口方法立即返回。也就是說非阻塞的。你必須開啟一個獨立的線程來完成你自定義的復雜的工作,比如聯網等可能發生阻塞的io操作。新的線程如果不和用戶交流,告訴用戶線程正在工作的話,將會顯現的非常不友好。用戶可能執行別的操作而擾亂程序的正常運行。一個簡單的方法是提供一個進度條,這樣用戶就會願意等待上一會,直到程序運行出結果。為了將程序員從前台進度條與後台線程的通信中解脫出來,專心於後台線程的開發,有必要設計一個進度條線程模型。
應該注意到進度條有多種的形式:
A, 動畫形式進度條,僅表示程序正在運行(自維護的)
B, 可交互增量形式的進度條,後台線程通過調用進度條的相應方法在程序運行中不斷的改變進度條的狀態
C, 進度條的表現形式應該靈活,不要固定其實現
D, 進度條對象要重復利用
進度調和後台線程的交流也有好幾種情況:
A, 僅僅將進度條繪畫在屏幕上,並等後台任務完成後,由後台線程跳轉到成功畫面。
B, 對於可取消的任務,用戶可以通過點擊進度條的按鈕來試圖cancel任務,後台任務應該盡快取消,並跳轉到失敗的畫面
C, 對於不可跳轉的任務,用戶只有耐心等待
D, 如果背景線程運行失敗,應自行跳轉到失敗的屏幕
進度條的設計(前台)
為了實現進度條的表現的多樣性,首先抽象一個接口:
ProgressObserver.java
package com.favo.ui;
import javax.microedition.lcdui.Display;
/**
* @author Favo
*
* 這是仿照Smart Ticket制作的進度條觀察者,這個模型的優點是
* 1,低耦合度。你可以通過Form,Canvas等來實現這個接口
* 2,支持可中斷的任務,因為背景線程是無法強制性中斷的,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved