1。系统参数的提取
MIDLet在运作时,必须通过java.lang.System.getProperty()函数来取得系统属性。他们分别是:
(1)microedition.profiles;取得系统支持的所有Profile信息
(2)microedition.configuration:取得系统所支持的Configuration信息
(3)microediton.locale;取得系统目前所使用的地区信息
(4)microediton.platform;MIDlet所在平台的名称或型号
(5)microedition.edcoding:取得系统缺省时使用的语言编码信息
2。Timer与TimerTask的使用
Timer是一个定时器,可以设定成特定时间或特定时间周期信号。不过,只有Timer没有用,必须配合TimerTask才有作用的。Timer一旦与某个TimerTask产生关联,就会在产生信号的同时,连带执行TimerTask所定义的工作。TimerTask的制作非常容易,任何一个类只要继承TimerTask类,并实现其run()方法即可。Run()方法就是我们自行定义的工作,一旦Timer在特定时间或特定时间周期产生信号,run()方法就会被执行。
我们会通过Timer的schedule()方法来设定特定时间或特定时间周期,并将它与某个TimerTask联系,最后,您可以使用Timer的cancel()方法来停止Timer,调用cancel()之后,Timer就会和TimerTask脱离关系。TimerTask本身也有cancel()方法。
我们希望没四秒钟产生一次信号,但是run()方法有时的确需要5.5秒完成工作,有时2.2秒就完成。程序如下:
MyTask4.java
import javax.microedtion.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class MyTask4 extends TimerTask
{ long lasttime;
public void run()
{ long now=System.currentTimeMillis();
System.out.print("Task4 Fire Time:");
System.out.print(now);
System.out.print(";Intervel:");
System.out.println(now-lasttime);
lasttime=now;
doSomething();
}
public void doSomething()
{ try
{ Random rdm=new Random();
int i=rdm.nextInt()%2;
if(i==0)
{ Thread.sleep(2500);
System.out.println("doSomething:2500 millisecond");
}
else
{ Thread.sleep(5500);
System.out.println("doSomething:5500 millisecond");
}
}
catch(Exception e){}
}
}
TimerTest4.java
import javax.microedtion.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class TimerTest4 extends MIDlet
{ Timer timer;
public TimerTest4()
{
}
public void startApp()
{ Form f=new Form("Test");
Display.getDisplay(this).setCurrent(f);
timer=new Timer();
MyTask4 mt=new MyTask4();
mt.lasttime=System.currentTimeMillis();
timer.schedule(mt,5000,4000);
System.out.println("Task Schedule Time:");
System.out.println(System.currentTimeMillis());
}
public void pauseApp()
{
}
public void destroyApp(boolean uncondition)
{ timer.cancel();
}
}