📄 pushexample.java
字号:
/* * PushExample.java * * Copyright (c) 1999-2002 Sun Microsystems, Inc. All rights reserved. * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms. */package example.http;import javax.microedition.midlet.*;import javax.microedition.io.*;import javax.microedition.lcdui.*;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.DataInputStream;import java.util.Vector;import java.util.Date;import java.lang.String;/** * An example MIDlet to fetch a page using an HttpConnection. * Refer to the startApp, pauseApp, and destroyApp * methods so see how it handles each requested transition. */public class PushExample extends MIDlet implements CommandListener { /** user interface command for indicating Exit request. */ Command exitCommand = new Command("Exit", Command.EXIT, 2); /** user interface component containing a list of URLs */ List urlList; /** array of current URLs */ Vector urls; /** user interface alert component. */ Alert alert; // Wait for 2sec static final int DefaultTimeout = 2000; Image newsHoundImage; boolean imageLoaded; /** current display. */ Display display; /** current requested url. */ String url; /** initialize the MIDlet with the current display object. */ public PushExample() { display = Display.getDisplay(this); } /** * Start creates the thread to do the timing. * It should return immediately to keep the dispatcher * from hanging. */ public void startApp() { try { newsHoundImage = Image.createImage("/example/http/images/newshound.png"); imageLoaded = true; } catch (java.io.IOException ex) { System.err.println("Image is not loaded :" + imageLoaded); } alert = new Alert("News Hound", "", newsHoundImage, AlertType.INFO); alert.setTimeout(DefaultTimeout); setupList(); /* Bytes read from the URL update connection. */ int count; /* Check for inbound async connection for sample Finger port. */ String[] connections = PushRegistry.listConnections(true); /* HttpView was started to handle inbound request. */ String pushProperty = getAppProperty("MIDlet-Push-1"); if (connections != null && connections.length > 0) { String newurl = "Pushed URL Placeholder"; /* DEBUG: Test basic get registry information interfaces. */ try { String midlet = PushRegistry.getMIDlet(connections[0]); String filter = PushRegistry.getFilter(connections[0]); } catch (Exception e) { e.printStackTrace(); } /* Check for socket or datagram connection. */ if (connections[0].startsWith("socket://")) { try { /* Simple test assumes a server socket connection. */ ServerSocketConnection scn = (ServerSocketConnection) Connector.open(connections[0]); SocketConnection sc = (SocketConnection) scn.acceptAndOpen(); /* Read one line of text as a new URL to add to the list. */ DataInputStream dis = sc.openDataInputStream(); byte[] buf = new byte[256]; int endofline = 0; count = dis.read(buf); for (int i = 0; i < count; i++) { if (buf[i] == '\n') { endofline = i; break; } } newurl = new String(buf, 0, endofline); dis.close(); sc.close(); scn.close(); } catch (IOException e) { System.err.println("******* io exception in push example"); e.printStackTrace(); } } else { System.err.println(" NYI - unknown connection type"); } urlList.append(newurl, null); urls.addElement(newurl); } else { connections = PushRegistry.listConnections(false); } display.setCurrent(alert, urlList); } /** * Pause signals the thread to stop by clearing the thread field. * If stopped before done with the iterations it will * be restarted from scratch later. */ public void pauseApp() { } /** * Destroy must cleanup everything. The thread is signaled * to stop and no result is produced. * @param unconditional true if a forced shutdown was requested */ public void destroyApp(boolean unconditional) { } /** * Check the attributes in the descriptor that identify * url's and titles and initialize the lists of urls * and urlList. * <P> * The attributes are named "ViewTitle-n" and "ViewURL-n". * The value "n" must start at "1" and increment by 1. */ void setupList() { urls = new Vector(); urlList = new List("News Headlines", List.IMPLICIT); urlList.setFitPolicy(Choice.TEXT_WRAP_OFF); urlList.addCommand(exitCommand); urlList.setCommandListener(this); for (int n = 1; n < 100; n++) { String nthURL = "ViewURL-"+ n; String url = getAppProperty(nthURL); if (url == null || url.length() == 0) { break; } String nthTitle = "ViewTitle-" + n; String title = getAppProperty(nthTitle); if (title == null || title.length() == 0) { title = url; } urls.addElement(url); urlList.append(title, null); } urlList.append("Next InComing News: ", null); } /** * Respond to commands, including exit * @param c user interface command requested * @param s screen object initiating the request */ public void commandAction(Command c, Displayable s) { try { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } } catch (Exception ex) { ex.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -