MIDP程式設計基本知識

來源:互聯網
上載者:User

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

}

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.