MIDP程序设计基本知识

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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值