<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>O I P O P - 私人领域 &#187; J2ME开发</title>
	<atom:link href="http://blog.oipop.com/archives/category/java/j2me%e5%bc%80%e5%8f%91/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.oipop.com</link>
	<description>From the Internet, For the Internet.</description>
	<lastBuildDate>Mon, 21 Jun 2010 21:13:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>j2me中Command出现的优先顺序</title>
		<link>http://blog.oipop.com/archives/55</link>
		<comments>http://blog.oipop.com/archives/55#comments</comments>
		<pubDate>Sun, 16 Aug 2009 11:31:07 +0000</pubDate>
		<dc:creator>Kinsta</dc:creator>
				<category><![CDATA[J2ME开发]]></category>
		<category><![CDATA[JAVA开发]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[手机编程]]></category>

		<guid isPermaLink="false">http://blog.oipop.com/?p=55</guid>
		<description><![CDATA[其实这是有一套规格可循的。规则如下： 1.先比较每个Command物件的命令型态，优先顺序越高的越先出现。 在Command物件之中共定义了八种命令型态，从优先顺序最高到最低列表如下： Command.BACK Command.BACK Command.CANCEL Command.CANCEL Command.EXIT Command.EXIT Command.HELP Command.HELP Command.ITEM Command.ITEM Command.OK Command.OK Command.SCREEN Command.SCREEN Command.STOP Command.STOP 2.如果命令型态相同，就比较其优先权，设定值越低的越先出现。 3.如果优先权相同，就以利用addCommand()加入画面的先后顺序决定。]]></description>
			<content:encoded><![CDATA[<p>其实这是有一套规格可循的。规则如下：<br />
1.先比较每个Command物件的命令型态，优先顺序越高的越先出现。<br />
在Command物件之中共定义了八种命令型态，从优先顺序最高到最低列表如下：<br />
Command.BACK Command.BACK<br />
Command.CANCEL Command.CANCEL<br />
Command.EXIT Command.EXIT<br />
Command.HELP Command.HELP<br />
Command.ITEM Command.ITEM<br />
Command.OK Command.OK<br />
Command.SCREEN Command.SCREEN<br />
Command.STOP Command.STOP<br />
2.如果命令型态相同，就比较其优先权，设定值越低的越先出现。<br />
3.如果优先权相同，就以利用addCommand()加入画面的先后顺序决定。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oipop.com/archives/55/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用线程创建的三种方式实现j2me联网功能</title>
		<link>http://blog.oipop.com/archives/52</link>
		<comments>http://blog.oipop.com/archives/52#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:29:34 +0000</pubDate>
		<dc:creator>Kinsta</dc:creator>
				<category><![CDATA[J2ME开发]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[JAVA开发]]></category>
		<category><![CDATA[手机编程]]></category>

		<guid isPermaLink="false">http://blog.oipop.com/?p=52</guid>
		<description><![CDATA[在j2me联网时，在eclipse控制台下有一个警告：“若要避免潜在的死锁，应该在commandAction()处理程序之外的其他线程中执行可能会阻塞的，操作（如网络连接）。 为了避免潜在的死锁，我们经常把把联网的代码部分写到一个线程中去执行。 而实际应用中，网络连接的事务也都是使用一个单独的线程进行的。 线程的创建可以使用Runnable接口来实现，也可以使用Thread类实现，还可以以匿名内部类的方式创建。在本文中，分别用这三种方式给出了j2me联网的例子。 代码均测试通过。可以直接使用。 1.通过继承Thread类创建   import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class OpenConn implements Runnable {  private HttpURLConnection conn;  private URL url;  // Thread thread1;  public OpenConn(String url) throws MalformedURLException {   this.url = new URL(url);  }  public void run() {   try {    conn = [...]]]></description>
			<content:encoded><![CDATA[<p>在j2me联网时，在eclipse控制台下有一个警告：“若要避免潜在的死锁，应该在commandAction()处理程序之外的其他线程中执行可能会阻塞的，操作（如网络连接）。<br />
为了避免潜在的死锁，我们经常把把联网的代码部分写到一个线程中去执行。<br />
而实际应用中，网络连接的事务也都是使用一个单独的线程进行的。<br />
<span id="more-52"></span><br />
线程的创建可以使用Runnable接口来实现，也可以使用Thread类实现，还可以以匿名内部类的方式创建。在本文中，分别用这三种方式给出了j2me联网的例子。<br />
代码均测试通过。可以直接使用。<br />
1.通过继承Thread类创建</p>
<p>  import java.io.BufferedReader;<br />
import java.io.IOException;<br />
import java.io.InputStreamReader;<br />
import java.io.Reader;<br />
import java.net.HttpURLConnection;<br />
import java.net.MalformedURLException;<br />
import java.net.URL;</p>
<p>public class OpenConn implements Runnable {<br />
 private HttpURLConnection conn;<br />
 private URL url;</p>
<p> // Thread thread1;</p>
<p> public OpenConn(String url) throws MalformedURLException {<br />
  this.url = new URL(url);<br />
 }</p>
<p> public void run() {<br />
  try {<br />
   conn = (HttpURLConnection) url.openConnection();<br />
  } catch (IOException e) {<br />
   e.printStackTrace();<br />
   url = null;<br />
  }<br />
 }</p>
<p> public HttpURLConnection getConn() {<br />
  return conn;<br />
 }</p>
<p> public static void main(String[] args) throws Exception {<br />
  // 创建Runnable类<br />
  OpenConn openConn = new OpenConn(“<a href="http://www.google.com/">http://www.google.com</a>“);<br />
  // 创建线程<br />
  Thread thread = new Thread(openConn);<br />
  // openConn.thread1=thread;<br />
  thread.start();<br />
  thread.join(10000);// wait 10 seconds<br />
  HttpURLConnection c = openConn.getConn();<br />
  if (c != null) {<br />
   System.out.println(“连接网络成功&#8230;”);<br />
   BufferedReader r = new BufferedReader(new InputStreamReader(c<br />
     .getInputStream()));<br />
   String s = r.readLine();<br />
   while (s != null) {<br />
    System.out.println(s);<br />
    s = r.readLine();<br />
   }<br />
  } else {<br />
   System.out.println(“超时错误,连接网络失败&#8230;”);<br />
  }<br />
 }<br />
} <br />
2.通过引用Runnable接口创建</p>
<p>import java.io.BufferedReader;<br />
import java.io.IOException;<br />
import java.io.InputStreamReader;<br />
import java.io.Reader;<br />
import java.net.HttpURLConnection;<br />
import java.net.MalformedURLException;<br />
import java.net.URL;</p>
<p>public class OpenConn2 extends Thread {<br />
 private HttpURLConnection conn;<br />
 private URL url;</p>
<p> public OpenConn2(String url) throws MalformedURLException {<br />
  this.url = new URL(url);<br />
 }</p>
<p> public void run() {<br />
  try {<br />
   conn = (HttpURLConnection) url.openConnection();<br />
  } catch (IOException e) {<br />
   e.printStackTrace();<br />
   url = null;<br />
  }<br />
 }</p>
<p> public HttpURLConnection getConn() {<br />
  return conn;<br />
 }</p>
<p> public static void main(String[] args) throws Exception {<br />
  OpenConn2 openConn = new OpenConn2(“<a href="http://www.google.com/">http://www.google.com</a>“);<br />
  openConn.start();<br />
  openConn.join(10000);// wait 10 seconds<br />
  HttpURLConnection c = openConn.getConn();<br />
  if (c != null) {<br />
   System.out.println(“连接网络成功&#8230;”);<br />
   BufferedReader r = new BufferedReader(new InputStreamReader(c<br />
     .getInputStream()));<br />
   String s = r.readLine();<br />
   while (s != null) {<br />
    System.out.println(s);<br />
    s = r.readLine();<br />
   }<br />
  } else {<br />
   System.out.println(“超时错误,连接网络失败&#8230;”);<br />
  }<br />
 }<br />
}<br />
3.以匿名内部类的方式创建<br />
即在一个方法中创建线程，当方法被调用时，线程即启动，如下：<br />
import java.io.BufferedReader;<br />
import java.io.IOException;<br />
import java.io.InputStreamReader;<br />
import java.net.HttpURLConnection;<br />
import java.net.URL;</p>
<p>public class OpenConn3 {<br />
 private HttpURLConnection conn;<br />
 private URL url;<br />
 <br />
 public static void main(String[] args){<br />
  try{<br />
   OpenConn3 open3= new OpenConn3();<br />
   open3.strartMyThread();<br />
  }catch(Exception ex){<br />
   System.out.println(ex.toString());<br />
  }<br />
 }<br />
  public void strartMyThread() throws Exception{<br />
   this.url =new URL(“<a href="http://www.google.com/">http://www.google.com</a>“);<br />
         java.lang.Runnable runner=new Runnable(){<br />
          public void run(){<br />
           try {<br />
            conn = (HttpURLConnection) url.openConnection();<br />
           } catch (IOException e) {<br />
            e.printStackTrace();<br />
            url = null;<br />
           }<br />
          }</p>
<p>         };<br />
         Thread openConn=new Thread(runner);<br />
         openConn.start();<br />
         openConn.join(10000);// wait 10 seconds</p>
<p>   if (conn != null) {<br />
    System.out.println(“连接网络成功&#8230;”);<br />
    BufferedReader r = new BufferedReader(new InputStreamReader(conn<br />
      .getInputStream()));<br />
    String s = r.readLine();<br />
    while (s != null) {<br />
     System.out.println(s);<br />
     s = r.readLine();<br />
    }<br />
   } else {<br />
    System.out.println(“超时错误,连接网络失败&#8230;”);<br />
   }</p>
<p>  }<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oipop.com/archives/52/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

