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

📄 deluxeworker.java

📁 用J2ME实现简单电子邮件发送功能。 可以通过手机运行该程序
💻 JAVA
字号:
/* License *  * Copyright 1994-2004 Sun Microsystems, Inc. All Rights Reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *   *  * Redistribution of source code must retain the above copyright notice, *      this list of conditions and the following disclaimer. *  *  * Redistribution in binary form must reproduce the above copyright notice, *      this list of conditions and the following disclaimer in the *      documentation and/or other materials provided with the distribution. *  * Neither the name of Sun Microsystems, Inc. or the names of contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. *   * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. *   * You acknowledge that this software is not designed, licensed or intended * for use in the design, construction, operation or maintenance of any * nuclear facility.  */import java.io.*;

import javax.microedition.io.*;
import javax.microedition.lcdui.*;

public class DeluxeWorker extends Thread {
  private DeluxeMIDlet mMIDlet;
  private WaitCanvas mWaitCanvas;
  private String mURL;
  private HttpConnection mHttpConnection;
  private boolean mTrucking, mCancel;
  
  public DeluxeWorker(DeluxeMIDlet midlet, WaitCanvas waitCanvas, String url) {
    mMIDlet = midlet;
    mWaitCanvas = waitCanvas;
    mURL = url;
    mTrucking = true;
    mCancel = false;
  }
  
  public synchronized void run() {
    while (mTrucking) {
      try { wait(); }
      catch (InterruptedException ie) {}
      if (mTrucking) connect();
    }
  }
  
  public synchronized void go() {
    notify();
  }
  
  public void cancel() {
    try {
      mCancel = true;
      if (mHttpConnection != null)
        mHttpConnection.close();
    }
    catch (IOException ignored) {}
  }
  
  public synchronized void stop() {
    mTrucking = false;
    notify();
  }
  
  private void connect() {
    InputStream in = null;

    try {
      // Query the server and retrieve the response.
      mWaitCanvas.setMessage("Sending...");
      mHttpConnection = (HttpConnection)Connector.open(mURL);
      mHttpConnection.setRequestProperty("Connection", "close");
      in = mHttpConnection.openInputStream();
      
      // Pull back the server's response. If a content length is not
      // specified, we'll just read 255 bytes.
      mWaitCanvas.setMessage("Receiving...");
      int contentLength = (int)mHttpConnection.getLength();
      if (contentLength == -1) contentLength = 255;
      byte[] raw = new byte[contentLength];
      int length = in.read(raw);

      // Clean up.
      in.close();
      mHttpConnection.close();

      // Show the response to the user.
      String s = new String(raw, 0, length);
      mMIDlet.networkResponse(s);
    }
    catch (IOException ioe) {
      if (mCancel == false) {
        try {
          if (in != null) in.close();
          if (mHttpConnection != null) mHttpConnection.close();
        }
        catch (IOException ignored) {}
        mMIDlet.networkException(ioe);
      }
      mCancel = false;
    }
  }
}

⌨️ 快捷键说明

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