2012-06-27 1 views
6

시스템 시작시 실행할 백그라운드 앱을 만들려고합니다. 리본 메뉴에서 수동으로 실행하면 화면이 나타나지만 시작 응용 프로그램 (설명자의 시작 옵션에서 자동 실행)을 실행 한 후 앱을 실행하면 아무 것도 화면에 표시되지 않습니다. 나는 다음 코드를 시도하고있다;BlackBerry App : 화면이 자동 실행 모드로 표시되지 않음

public class AppClass extends UiApplication { 

    public static void main(String[] args) { 
     AppClass theApp = new AppClass(); 
     theApp.enterEventDispatcher(); 
    } 

    public AppClass() { 
     pushScreen(new AppScreen()); 
    } 
} 

그리고 이것은 스크린 클래스입니다.

public final class AppScreen extends MainScreen { 

    private LabelField label; 

    public AppScreen() { 
     setTitle("AppTitle"); 

     label = new LabelField(); 
     label.setText("Ready."); 

     add(label); 
    } 
} 

나는 시작시 자동 실행이 또는 수동으로 실행하는 경우 자사의 UI 응용 프로그램 그래서 그 화면을 볼 수에 상관없이해야한다고 기대하고있다. 예상대로 작동하도록하기 위해 뭔가를해야한다면, 그것에 대해 안내해주십시오. 저는 BlackBerry 개발에 익숙하지 않습니다. 다음 환경에서 개발 중입니다.

  • 블랙 베리 JDE 이클립스 플러그인 1.5.0
  • 블랙 베리 OS 4.5

답변

2

전화 getApplication().requestForeground();은 화면이 표시 될 수 있도록.

public final class AppScreen extends MainScreen { 

    private LabelField label; 

    public AppScreen() { 
     setTitle("AppTitle"); 

     label = new LabelField(); 
     label.setText("Ready."); 

     add(label); 

     getApplication().requestForeground(); 
    } 
} 

앱이 백그라운드에서 실행되면, 우리는 UI 요소를 보여주기 위해 명시 적으로 포 그라운드로 가져해야하고 우리가 여기서 뭘하고있는 것입니다.

5

자동 사용자 인터페이스에 대한 지원이되지 않도록 OS 부팅이 완료되기 전에 응용 프로그램이 실행되는 시작합니다. 귀하의 응용 프로그램이 시작되고 있지만 일부 UI 호출이 실패한 것 같습니다. 자동 실행되고 홈 화면에서 실행되는 응용 프로그램을 작성하는 문서화 된 방법은 프로그램이 자동 실행되었음을 알리는 인수로 자동 실행을위한 대체 진입 점을 제공하는 것입니다. 그런 다음 API를 사용하여 OS가 UI 응용 프로그램을 사용할 준비가 될 때까지 기다립니다. 당신의 AppScreen 클래스의 생성자에서

public class AppClass extends UiApplication { 
    public static void main(String[] args) { 

     if (args.length > 0 && args[0].equals("auto-run")) { 
      // auto start, wait for OS 
      while (ApplicationManager.getApplicationManager().inStartup()) { 
       Thread.sleep(10000); 
      } 

      /* 
      ** Do auto-run UI stuff here 
      */ 
     } else { 
      AppClass theApp = new AppClass(); 
      theApp.enterEventDispatcher(); 
     } 
    } 

    public AppClass() { 
     pushScreen(new AppScreen()); 
    } 
} 
+0

고맙습니다. 내가 그것을 시도하자. – Mudassir

관련 문제