⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j-stock-6-5.html

📁 在本教程中
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<TD width="150" height="1" bgcolor="#000000" colspan="6"><IMG alt="" height="1" width="150" src="../i/c.gif"></TD>
</TR>
<TR>
<TD background="../i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="主菜单" border="0" src="../i/main.gif" name="topmain"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index6.html"><img alt="章节菜单" border="0" src="../i/section.gif" name="topsection"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="j-stock-9-4.html"><img alt="给出此教程的反馈意见" border="0" src="../i/feedback.gif" name="topfeedback"></a></TD><TD width="100%" background="../i/sw-gold.gif"><img alt="" src="../i/c.gif"></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topprevious'); iOver('bottomprevious'); self.status=previousblurb; return true;" onMouseOut="iOut('topprevious'); iOut('bottomprevious'); self.status=''; return true;" href="j-stock-6-4.html"><img alt="上页" border="0" src="../i/previous.gif" name="topprevious"></a></TD><TD background="../i/sw-gold.gif"><img alt="" border="0" src="../i/xnext.gif"></TD>
</TR>
<TR>
<TD width="100%" colspan="5"></TD><TD width="108" height="1" bgcolor="#000000" align="right"><IMG alt="" height="1" width="108" src="../i/c.gif"></TD>
</TR>
<TR>
<TD colspan="5"></TD><TD align="right"><a border="0" onMouseOver="iOver('topnextsection'); iOver('bottomnextsection'); self.status=nextsectionblurb; return true;" onMouseOut="iOut('topnextsection'); iOut('bottomnextsection'); self.status=''; return true;" href="j-stock-7-1.html"><img alt="下一章" src="../i/nextsection.gif" border="0" name="topnextsection"></a></TD>
</TR>
</TABLE>
<table bgcolor="ffffff" cellspacing="0" cellpadding="2" border="0" height="400" width="100%">
<tr valign="bottom">
<a name="navskip"></a><td height="25" colspan="4"><img alt="6.J2ME 联网" src="imagemaster/titlebar6.jpg" border="0" height="25" width="562"></td>
</tr>
<tr>
<td bgcolor="ffffff" width="15">&nbsp;</td><td bgcolor="ffffff" width="12">&nbsp;</td><td valign="top" align="left" bgcolor="ffffff" width="*">
<p>
<br>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="90%"><font size="4" face="Verdana, Arial, Helvetica"><b>Download 类</b></font></td><td width="200" align="right"><font size="1" face="Verdana, Arial, Helvetica"><nobr>   第 5 页(共5 页)</nobr></font></td>
</tr>
</table>
<br>
<br>
</p>
<font size="2" face="Verdana, Arial, Helvetica">
<p>在上一页中,我简短地讨论了用于适度多线程的技术。下面的代码清单提供了详细的实现。以下是 <code>Download</code> 类的代码:</p>
<pre>
<code style="font-family: Courier New, Courier, monospace; font-size: 12">
public class Download implements Runnable
{
  private UniStock     midlet;
  private String       baseURL;		 // Retrieve URL from JAD file.
  private String       URL;

  private boolean      interrupted;

  // For a Class object, only one of the following
  // objects is not null.
  private   FormAdd  formAdd;
  private   FormView formView;

  // We only allow one download listener so far.
  DownloadListener dl;
  boolean hasListener;

  public Download(UniStock midlet) {
    this.midlet = midlet;
    baseURL = midlet.getAppProperty(midlet.URL_KEY);
  }

  ...

  /**
   * Thread starts from here!
  */
  public void run() {
    try {
      getInfo();
    }catch(Exception e) {
      if(midlet.DEBUG)
        midlet.debug("Exception caught: " + e.toString());
    }
  }

  public void setInterrupted() {
    interrupted = true;
    if(midlet.DEBUG)
      midlet.debug("Interrupted!");
  }

  public boolean interrupted() {
    return interrupted;
  }

  /**
   * Do the real work here.
   */
  private void getInfo() throws Exception {
    HttpConnection http = null;
    InputStream is = null;
    boolean ret = false;

    if(formAdd != null) {
      URL = baseURL + "?E=" +
formAdd.choiceExchanges.getSelectedIndex() +
		     "&amp;S=" + formAdd.textCode.getString() + "&amp;T=0";
    }else if(formView != null &amp;&amp; formView.s != null) {
      // Create view baseURL....
      ...
    }

    if(UniStock.DEBUG)
      UniStock.debug("Connecting to: " + URL);

    try{
      http = (HttpConnection) Connector.open(URL);
      http.setRequestMethod(HttpConnection.GET);
      if(hasListener)
        dl.setProgress(1, 10);

      if(interrupted)
        throw new InterruptedException();

      is = http.openInputStream();
      if(hasListener)
        dl.setProgress(2, 10);
      if(UniStock.DEBUG)
        UniStock.debug("Connecting to: " + URL);

      String str;      // Temp buffer.
      int length = (int) http.getLength();
      if(hasListener)
        dl.setProgress(3, 10);

      if(interrupted)
        throw new InterruptedException();

      if(length != -1) { // Length valid.
        byte data[] = new byte[length];
        is.read(data);
        str = new String(data);
      }else{		 // Length not available.
        ByteArrayOutputStream bs = new ByteArrayOutputStream();

        int ch;
        while((ch = is.read()) != -1)
		   bs.write(ch);

        str = new String(bs.toByteArray());
          bs.close();
      }

      if(interrupted)
        throw new InterruptedException();

      if(UniStock.DEBUG)
        UniStock.debug("Got Data:&gt;" + str + "&lt;");

      // String downloaded.....
      // Process data here.
      ...

      if(hasListener)
        dl.setProgress(10, 10);

      // Alert the user.
      // AlertType.INFO.playSound(midlet.display);

    } catch (IOException e) {
      if(midlet.DEBUG)
        midlet.debug("Downloading error: " + e.toString());
      if(formAdd != null) {
        formAdd.stockOK = false;
      }else if(formView != null) {

      }
    } finally {
     if(formAdd != null)
       formAdd.process();
     if(formView != null)
       ;		 // Do something.

     /// Clean up.
     if(is != null)
       is.close();
     if(http != null)
       http.close();

     if(dl != null)

       dl.onFinish();
    }

  } // End function getInfo();

}


         </code>
</pre>
<br>
</font></td>
</tr>
</table>
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD align="right" colspan="6"><a border="0" onMouseOver="iOver('topnextsection'); iOver('bottomnextsection'); self.status=nextsectionblurb; return true;" onMouseOut="iOut('topnextsection'); iOut('bottomnextsection'); self.status=''; return true;" href="j-stock-7-1.html"><img alt="下一章" src="../i/nextsection.gif" border="0" name="bottomnextsection"></a></TD>
</TR>
<TR>
<TD width="100%" colspan="5"></TD><TD width="108" height="1" bgcolor="#000000" align="right"><IMG alt="" height="1" width="108" src="../i/c.gif"></TD>
</TR>
<TR>
<TD background="../i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="主菜单" border="0" src="../i/main.gif" name="bottommain"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index6.html"><img alt="章节菜单" border="0" src="../i/section.gif" name="bottomsection"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="j-stock-9-4.html"><img alt="给出此教程的反馈意见" border="0" src="../i/feedback.gif" name="bottomfeedback"></a></TD><TD width="100%" background="../i/sw-gold.gif"><img alt="" src="../i/c.gif"></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topprevious'); iOver('bottomprevious'); self.status=previousblurb; return true;" onMouseOut="iOut('topprevious'); iOut('bottomprevious'); self.status=''; return true;" href="j-stock-6-4.html"><img alt="上页" border="0" src="../i/previous.gif" name="bottomprevious"></a></TD><TD background="../i/sw-gold.gif"><img alt="" border="0" src="../i/xnext.gif"></TD>
</TR>
<TR>
<TD width="150" height="1" bgcolor="#000000" colspan="6"><IMG alt="" height="1" width="150" src="../i/c.gif"></TD>
</TR>
</TABLE>
<TABLE width="100%" cellpadding="0" cellspacing="0" border="0">
<TR>
<TD width="100%">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><img alt="" height="1" width="1" src="../i/c.gif"></td>
</tr>
<tr valign="top">
<td class="bbg" height="21"> <a class="mainlink" href="/developerWorks/cn/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/index.shtml">关于 IBM</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cn/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/privacy/index.shtml">隐私条约</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cn/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/legal/index.shtml">法律条款</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cn/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/contact/index.shtml">联系 IBM</a></td>
</tr>
</table>
</TD>
</TR>
</TABLE>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -