首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 應用設計指南:多網絡連接管理與 JAD 配置技巧

     編輯:J2ME

問題:並非所有設備支援多連線

部分手機限制同時開啟的網路連線數。應用若依賴多連線,在不支援的設備上會崩潰。解決之道:在 JAD 中聲明設備最大連線數,執行期動態檢查。

JAD 聲明範例

MIDlet-1: Foo, , Foo
MIDlet-Jar-Size: 7063
MIDlet-Jar-URL: foo.jar
MIDlet-Name: Foo
MIDlet-Vendor: Yoyodyne Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
Device-Max-Connection: 3

初始化讀取與連線計數器

String maxConnStr = getAppProperty("Device-Max-Connection");
int deviceMaxConnection = Integer.parseInt(maxConnStr);
int openConnections = 0; // 全域變數

建立連線前檢查

if (openConnections < deviceMaxConnection) {
    HttpConnection conn = (HttpConnection) Connector.open(uri);
    openConnections++;
    // 使用連線...
} else {
    // 處理超限:排隊、拋出異常或降級
}

關閉連線時遞減計數

conn.close();
openConnections--;

如何測試設備最大連線數(無文檔時)

int count = 0;
try {
    while (true) {
        Connector.open("https://tools.ietf.org/html/rfc262" + count);
        count++;
    }
} catch (Exception e) {
    // 例外發生時 count 即為最大連線數
    // 將此值寫入 JAD 供下次使用
}

最佳實踐建議

  • 優先查閱廠商文檔(如 Motorola 列出支援連線類型與上限)。
  • 應用設計盡量不依賴多連線,改用序列化請求或連線池複用。
  • JAD 屬性命名建議用 Device-Max-Connection,啟動時讀取並快取。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved