MID 프로필

javax.microedition.midlet
Class MIDlet

java.lang.Object
  |
  +--javax.microedition.midlet.MIDlet

public abstract class MIDlet
extends Object

MIDlet은 MID 프로필 응용 프로그램입니다. 응용 프로그램은 이 클래스를 확장하여 응용 프로그램 관리 소프트웨어가 MIDlet을 제어하고 응용 프로그램 설명자에서 등록 정보를 검색하고 상태 변경을 통지 및 요청할 수 있게 합니다. 이 클래스의 메소드를 사용하면 응용 프로그램 관리 소프트웨어가 MIDlet을 작성, 시작, 일시 중지 및 완전 삭제할 수 있습니다. MIDlet은 이 인터페이스를 통해 응용 프로그램 관리 소프트웨어에서 실행 및 제어되도록 설계된 클래스 집합입니다. 상태를 사용하면 응용 프로그램 관리 소프트웨어가 런타임 환경의 여러 MIDlet 작업을 관리할 수 있습니다. 이를 통해 개별적으로 MIDlet을 시작 및 일시 중지시켰을 때 주어진 시간에 어떤 MIDlet이 활성 상태인지 선택할 수 있습니다. 응용 프로그램 관리 소프트웨어는 MIDlet의 상태를 관리하고 MIDlet의 메소드를 호출하여 MIDlet의 상태 변경을 알립니다. MIDlet은 이러한 메소드를 구현하여 응용 프로그램 관리 소프트웨어에서 지시하는 대로 해당 내부 작업 및 자원 사용을 업데이트합니다. MIDlet은 자체적으로 몇 가지 상태 변경을 시작할 수 있으며 적절한 메소드를 호출하여 응용 프로그램 관리 소프트웨어에 이러한 상태 변경을 알립니다.

주: 이 인터페이스의 메소드가 상태 변경을 알립니다. 상태 변경 메소드가 반환되어야 상태 변경이 완료된 것으로 간주합니다. 이는 이러한 메소드가 빨리 반환되게 하기 위함입니다.


Constructor Summary
protected MIDlet()
          서브 클래스에 대해 보호된 구성자.
 
Method Summary
 int checkPermission(String permission)
          지정된 권한 상태를 가져옵니다.
protected abstract  void destroyApp(boolean unconditional)
          MIDlet이 종료되어 완전 삭제 상태에 들어갔음을 알립니다.
 String getAppProperty(String key)
          응용 프로그램 관리 소프트웨어에서 명명된 등록 정보를 검색하는 기법을 MIDlet에 제공합니다.
 void notifyDestroyed()
          MIDlet완전 삭제 상태에 들어갔다는 것을 응용 프로그램 관리 소프트웨어에 알릴 때 사용합니다.
 void notifyPaused()
          MIDlet이 활성화되지 않고 일시 중지 상태에 들어갔음을 응용 프로그램 관리 소프트웨어에 알립니다.
protected abstract  void pauseApp()
          MIDlet일시 중지 상태에 들어갔음을 알립니다.
 boolean platformRequest(String URL)
          장치가 표시된 URL을 처리(예: 표시 또는 설치)하도록 요청합니다.
 void resumeRequest()
          MIDlet활성 상태에 들어가려고 함을 표시하는 기법을 MIDlet에 제공합니다.
protected abstract  void startApp()
          MIDlet활성 상태로 들어갔음을 MIDlet에 알립니다.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MIDlet

protected MIDlet()
서브 클래스에 대해 보호된 구성자. 응용 프로그램 관리 소프트웨어에서 MIDlet 작성을 담당하며 이 작업은 제한되어 있습니다. MIDlet에서 다른 MIDlet을 작성할 수 없습니다.

Throws:
SecurityException - 응용 프로그램 관리 소프트웨어에서 MIDlet을 작성하지 않은 경우
Method Detail

startApp

protected abstract void startApp()
                          throws MIDletStateChangeException
MIDlet활성 상태로 들어갔음을 MIDlet에 알립니다. 활성 상태의 MIDlet은 자원을 보유할 수 있습니다. 이 메소드는 MIDlet일시 중지 상태인 경우에만 호출됩니다.

임시 및 지속이라는 두 종류의 오류로 인해 서비스가 시작되지 않을 수 있습니다. 임시 오류의 경우 MIDletStateChangeException 예외가 발생되어야 합니다. 지속 오류의 경우 notifyDestroyed 메소드가 호출되어야 합니다.

startApp 중 런타임 예외가 발생하면 MIDlet은 즉시 완전 삭제됩니다. 해당 destroyApp가 호출되어 MIDlet을 지웁니다.

Throws:
MIDletStateChangeException - MIDlet을 현재 시작할 수 없고 나중에 시작할 수 있는 경우 발생합니다.

pauseApp

protected abstract void pauseApp()
MIDlet일시 중지 상태에 들어갔음을 알립니다. 일시 중지 상태의 MIDlet은 공유 자원을 해제하고 정지 상태가 되어야 합니다. 이 메소드는 MIDlet활성 상태인 경우에만 호출됩니다.

pauseApp 중 런타임 예외가 발생하면 MIDlet은 즉시 완전 삭제됩니다. 해당 destroyApp가 호출되어 MIDlet을 지웁니다.


destroyApp

protected abstract void destroyApp(boolean unconditional)
                            throws MIDletStateChangeException
MIDlet이 종료되어 완전 삭제 상태에 들어갔음을 알립니다. 완전 삭제 상태의 MIDlet은 모든 자원을 해제하고 영구 상태를 저장해야 합니다. 이 메소드는 일시 중지 또는 활성 상태에서 호출될 수 있습니다.

MIDlet은 종료 전 자원 해제 또는 기본 설정이나 상태 저장과 같은 필요한 작업을 수행해야 합니다.

주: MIDletMIDletStateChangeException을 발생시켜 완전 삭제 상태에 들어가지 않도록 요청할 수 있습니다. 이러한 요청은 unconditional 플래그가 false로 설정된 경우에만 유효합니다. 이 플래그가 true이면 이 메소드의 종료 방법과 관계 없이 MIDlet완전 삭제 상태에 있다고 가정합니다. 이것이 무조건 요청이 아닌 경우 MIDletMIDletStateChangeException을 발생시켜 현재 상태를 유지한다는 사실을 알립니다. 이 요청이 수락되면 destroy() 메소드가 나중에 다시 호출됩니다.

destroyApp 중 런타임 예외가 발생하면 이러한 예외는 무시되고 MIDlet이 완전 삭제 상태에 들어갑니다.

Parameters:
unconditional - 이 메소드가 호출될 때 true이면 MIDlet이 정리되고 모든 자원을 해제해야 합니다. 반대로 false이면 MIDletMIDletStateChangeException을 발생시켜 지금은 완전 삭제되지 않을 것임을 표시합니다.
Throws:
MIDletStateChangeException - MIDlet이 실행을 계속하지 않으려는 경우 발생합니다(완전 삭제 상태에 들어가지 않음). 이 예외는 unconditionaltrue인 경우에는 무시됩니다.

notifyDestroyed

public final void notifyDestroyed()
MIDlet완전 삭제 상태에 들어갔다는 것을 응용 프로그램 관리 소프트웨어에 알릴 때 사용합니다. 이 경우 응용 프로그램 관리 소프트웨어는 MIDlet의 destroyApp 메소드를 호출하지 않고 MIDlet이 보유한 모든 자원을 다시 사용할 수 있는 것으로 간주합니다. MIDlet.destroyApp()가 호출되면 MIDlet은 동일한 작업(정리 및 자원 해제 등)을 수행해야 합니다.


notifyPaused

public final void notifyPaused()
MIDlet이 활성화되지 않고 일시 중지 상태에 들어갔음을 응용 프로그램 관리 소프트웨어에 알립니다. MIDlet이 완전 삭제되었거나 아직 시작되지 않은 경우에는 이 메소드를 호출해도 아무 효과가 없습니다.

MIDlet활성 상태에 있으면 MIDlet에 의해 이 메소드가 호출될 수 있습니다.

MIDletnotifyPaused()를 호출하면 나중에 startApp() 메소드가 호출되어 MIDlet을 다시 활성화할 수도 있고 destroyApp() 메소드가 호출되어 완전 삭제할 수도 있습니다.

응용 프로그램 자체적으로 일시 중지되면 resumeRequest를 호출하여 활성 상태에 다시 들어가도록 요청해야 합니다.


getAppProperty

public final String getAppProperty(String key)
응용 프로그램 관리 소프트웨어에서 명명된 등록 정보를 검색하는 기법을 MIDlet에 제공합니다. 등록 정보는 응용 프로그램 설명자 파일과 매니페스트의 조합에서 검색됩니다. 신뢰할 수 있는 응용 프로그램의 경우 매니페스트의 값이 응용 프로그램 설명자 값으로 대체되지 않도록 해야 합니다. 두 값이 다르면 MIDlet이 장치에 설치되지 않습니다. 신뢰할 수 없는 응용 프로그램의 경우 설명자의 속성 이름이 매니페스트의 속성 이름과 같으면 설명자의 값이 사용되고 매니페스트의 값은 무시됩니다.

Parameters:
key - 등록 정보 이름
Returns:
등록 정보 값을 가진 문자열. 키에 사용 가능한 값이 없는 경우 null이 반환됩니다.
Throws:
NullPointerException - 키가 null인 경우 발생합니다.

resumeRequest

public final void resumeRequest()
MIDlet활성 상태에 들어가려고 함을 표시하는 기법을 MIDlet에 제공합니다. 응용 프로그램 관리 소프트웨어는 이 메소드를 호출하여 활성 상태로 이동할 응용 프로그램을 결정할 수 있습니다.

응용 프로그램 관리 소프트웨어가 이 응용 프로그램을 활성화할 때 startApp 메소드가 호출됩니다.

이 메소드가 호출되는 경우 응용 프로그램은 일반적으로 일시 중지 상태입니다. 응용 프로그램은 일시 중지 상태에서도 타이머 또는 콜백과 같은 비동기 이벤트를 처리할 수 있습니다.


platformRequest

public final boolean platformRequest(String URL)
                              throws ConnectionNotFoundException

장치가 표시된 URL을 처리(예: 표시 또는 설치)하도록 요청합니다.

플랫폼에 적절한 기능과 사용 가능한 자원이 있으면 MIDlet Suite가 백그라운드에서 실행되는 동안 해당되는 응용 프로그램을 포그라운드로 가져와 사용자가 상호 작용할 수 있도록 해야 합니다. 플랫폼에 적절한 기능이나 사용 가능한 자원이 없으면 MIDlet Suite가 종료한 후에 해당 URL 요청을 처리하도록 대기할 수 있습니다. 이 경우 요청한 MIDlet Suite가 종료하면 플랫폼은 해당 응용 프로그램(있는 경우)을 포그라운드로 가져와 사용자가 상호 작용할 수 있도록 해야 합니다.

이것은 블록되지 않는 메소드입니다. 또한 이 메소드는 여러 요청을 대기열에 넣지 않습니다. 요청이 처리되기 전에 MIDlet Suite를 종료해야 하는 플랫폼의 경우 마지막 요청만 처리해야 합니다. MIDlet Suite와 요청이 동시에 처리될 수 있는 플랫폼의 경우 MIDlet Suite가 작성한 각 요청은 적시에 처리될 수 있도록 플랫폼 소프트웨어에 전달되어야 합니다.

지정된 URL이 MIDlet Suite(응용 프로그램 설명자 또는 JAR 파일)이면 요청을 처리할 응용 프로그램에서는 이를 명명된 패키지를 설치하는 요청으로 해석해야 합니다. 이 경우 플랫폼의 정상적인 MIDlet Suite 설치 프로세스를 사용해야 하고 사용자가 그 프로세스(다운로드 및/또는 설치 취소 포함)를 제어하도록 허용해야 합니다. 설치되는 MIDlet Suite가 현재 실행 중인 MIDlet Suite의 업데이트라면 플랫폼은 업데이트를 수행하기 전에 현재 실행 중인 MIDlet Suite를 먼저 중지시켜야 합니다. 플랫폼에 따라 설치를 실행하기 전에 현재 실행 중인 MIDlet Suite를 중지해야 하는 경우도 있습니다.

지정된 URL이 RFC2806에 지정된 것처럼 tel:<number> 형식이면 플랫폼에서는 이를 음성 호출을 시작하는 요청으로 해석해야 합니다. 이 요청은 "전화" 응용 프로그램(플랫폼에 해당 응용 프로그램이 존재하는 경우)에 전달되어 처리되어야 합니다. "전화" 응용 프로그램(존재하는 경우)은 시내 및 국제 통화를 설정할 수 있어야 하며 DTMF 전화 걸기도 수행해야 합니다. 모든 RFC2806 요소, 특히 해당 컨텍스트를 알고 있는 영역 지정자 또는 기타 터미널 요구 사항이 구현될 필요는 없습니다. ISDN 하위 주소, 서비스 제공자 및 향후 확장도 무시될 수 있습니다. 전화를 거는 중 일시 중지 현상은 일부 전화 서비스와는 무관합니다.

장치는 위의 요구 사항 외의 추가 URL 체제를 지원할 수 있습니다.

이 메소드를 사용하는 많은 방식이 사용자에게 재정적인 영향을 줄 수 있습니다(예: 무선 네트워크를 통한 데이터 전송 또는 음성 호출 시작). 따라서 플랫폼에서는 작업을 수행하기 전에 사용자가 각 요청을 명확하게 인식하고 있는지 확인해야 합니다. 사용자가 편리하게 작업할 수 있도록 자유롭게 구현할 수 있습니다. 예를 들어, 어떤 플랫폼에서는 대화 상자를 열어 각 요청에 대해 사용자의 허락을 얻을 수도 있고 다른 플랫폼에서는 적절한 응용 프로그램을 시작하여 URL 또는 전화 번호 필드를 채우지만 사용자가 로드 또는 다이얼 버튼을 확실히 누를 때까지는 작업을 수행하지 않을 수도 있습니다.

Parameters:
URL - 플랫폼에서 로드할 URL. 공백 문자열(null 아님)은 보류 중인 요청을 취소합니다.
Returns:
내용을 가져오기 전에 먼저 MIDlet Suite를 종료해야 하는 경우 true
Throws:
ConnectionNotFoundException - 플랫폼이 요청된 URL을 처리할 수 없는 경우
Since:
MIDP 2.0

checkPermission

public final int checkPermission(String permission)
지정된 권한 상태를 가져옵니다. 장치의 API가 요청된 특정 권한을 정의하지 않으면 거부로 보고되어야 합니다. 사용자 상호 작용을 요청할 수도 있기 때문에 권한 상태가 알려지지 않은 경우 알 수 없음으로 보고되어야 합니다.

Parameters:
permission - 거부, 허용 또는 알 수 없음인지 확인
Returns:
권한이 거부되면 0, 권한이 허용되면 1, 알려지지 않은 상태이면 -1
Since:
MIDP 2.0

MID 프로필

의견이나 제안 사항 보내기 MID 프로필 사양 버전 2.0
Java는 미국 및 다른 국가에서 Sun Microsystems, Inc.의 상표 또는 등록 상표입니다. Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. 모든 권리는 저작권자의 소유입니다.