2011-07-31 6 views
0

문제는 BlackBerry에서 어떻게 시작합니까?BlackBerry의 MainScreen에서 백그라운드 작업을 실행 하시겠습니까?

배경 : 클라이언트를 등록한 후에 백그라운드 서비스 (화면이 안되는 응용 프로그램)를 실행해야하는데, 그 후에 스레드에서 안전하게 실행해야합니다.

미리 감사드립니다. 코드 예를 들어 주시면 감사하겠습니다.

+1

당신은 자동 시작 응용 프로그램으로 응용 프로그램을 만들 수 있습니다 및 배경 때 장치 부츠를 실행할 수 있습니다. –

+0

내가 작성한대로 UI 화면에서 실행하고 싶습니다! –

+1

그런 다음 백그라운드에서 실행하고 해당 UI 클래스의로드 화면에서 해당 클래스를 호출 할 코드가 포함 된 Thread 클래스를 만들 수 있습니다. –

답변

1

스레드를 확장하는 실행 가능한 클래스를 만들어야합니다. (이 작업을 수행 할 수있는 다른 방법이있을 수 있습니다, 그러나 이것은 작동합니다.

그래서 당신은 당신의 메인 화면에서 지금
public class BackgroundTask extends Thread{ 


    private Object _screen; 

    public BackgroundTask() 
    { 

    } 

    /** 
    * Implementation of Thread. 
    */ 
    public void run() 
    { 
     //Do some background task 
    } 

뭔가를해야합니다, 당신은 단순히 그것을 호출해야합니다.

//Start my background task 
new BackgroundTask().start() 

시작은 부모 Thread 클래스에서 상속하는 방법이다, 그래서 당신을위한 스레드를 산란 알아서 할게요. 희망이 도움이됩니다.

+0

(YourApp) UiApplication.getUiApplication())이 필요한 이유는 무엇입니까? getScreen(); ??? –

+0

뒤늦은 관찰에서 반드시 필요한 것은 아닙니다. 업데이트를 푸시하려는 경우 스레드에 기본 화면 액세스 권한을 부여하지만 실제로는 선택 사항입니다. 모호성에 대한 사과 (나는 BB 프로그래밍에 익숙하다.) – frencha

0

을 수행하는 블랙 베리 방향 to use invokeLater()입니다 :

 int _id = -1; 
     Application _app = UiApplication.getUiApplication(); 

     ... 

     _id = _app.invokeLater(new Runnable() { 
      public void run() { 
       // do something - in 10 seconds 
       _id = -1; 
      } 
     }, 10*1000L, false); 
1
Thread thread = new Thread(){ 
    public void run() { 
     // Code for the background service. 
    } 
}; 

thread.start(); 
관련 문제