J2ME로 프로그래밍 할 때 도움이 될만한 팁들.
1. 일반적인 프로그램 템플릿 ¶
~cpp
import javax.microedition.midlet.MIDlet;
public class className extends MIDlet {
public className() {
}
public void startApp() {
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
2. 파일 입력 ¶
~cpp
InputStream is = this.getClass().getResourceAsStream("readme.txt");
try {
if ( is != null) {
int ch;
while ((ch = is.read()) != -1) {
System.out.print((char) ch);
}
is.close();
}
}
catch (IOException e) {
System.out.println(e);
}
}
3. 메모리와 관련하여 꼭 알아야 할 사항 ¶
- 메모리가 겹치는 경우가 절대로 없게 한다.
- System.gc() 함수를 호출하며 가비지 콜렉터를 명시적으로 수행해 준다.
4. destoryApp 메소드의 unconditional에 대하여... ¶
~cpp destoryApp 메소드에는 ~cpp unconditional 이라는 ~cpp boolean 값이 있다. ~cpp MIDlet이 더 이상 필요하지 않거나 종료되어야 할 때 ~cpp DestoryApp 메소드가 호출되고 ~cpp MIDlet이 ~cpp Destroyed 상태로 들어가게 되는데, 만약 ~cpp MIDlet이 중요한 과정을 수행중이라면 ~cpp MIDletStateChangeException을 발생시켜 그 과정이 끝날때까지 ~cpp Destroyed 상태로 가는 것을 막을 수 있다. 하지만 이런 요청도 상황에 따라 받아들여지지 않을 수 있는데, ~cpp unconditional 이라는 값이 그 상황을 알려준다. ~cpp unconditional이 ~cpp true 인 경우에는 ~cpp MIDletStateChangeException을 발생해도 무시되는 상황이고, ~cpp false 인 경우에는 ~cpp MIDletStateChangeException을 발생하면 ~cpp Destroyed 상태로 가는 것을 잠시 막을 수 있다.그러므로
~cpp destroyApp 메소드를 만들 때 ~cpp MIDletStateChangeException을 사용해야 하게 된다면 ~cpp unconditional 값에 따라 이 값이 ~cpp false인 경우에만 ~cpp MIDletStatChangeException을 사용하고 ~cpp true인 경우는 무조건 ~cpp Destroyed 상태로 가야하는 상황이므로 그 상황에 맞게 처리해 주면 된다.









