2011-01-11 4 views
0

Привет всем! Я новичок в программировании BlackBerry, хотя у меня есть java experience, с C#, являющимся моим основным языком).Blackberry background listener thread

То, что я пытаюсь сделать, это написать поток, который будет запускаться при запуске системы и существовать в фоновом режиме в качестве слушателя.

Я хочу, чтобы мое приложение реализовало KeyListener и в основном сидел в фоновом режиме, когда телефон включен, и отслеживать гистограмму того, сколько раз каждую кнопку нажали. В настоящее время я работаю на симуляторе, поэтому на данный момент я собираюсь распечатать его на консоли, когда он получит ключ.

Я смог реализовать keyListener в UIApplication, но он работает только во время загрузки приложения.

Вот приложение, которое я в настоящее время

public class CustomApp extends UiApplication 
{ 
    private keyListenerThread listener; 
    public stati void main(String[] args) 
    { 
     CustomApp myApp = new CustomApp(); 
     myApp.enterEventDispatcher(); 
    } 

    public CustomApp() 
    { 
     listener = new KeyListenerThread(); 
     this.addKeyListener(listener) 

     //.....other GUI setupthings.... 

     pushScreen(mainScreen); 
    } 

    private class KeyListenerThread extends Thread implements KeyListener 
    { 

     public KeyListenerThread() 
     { 

     } 

     public boolean keyDown(int arg0, int art1) 
     { 
      System.out.println("button pressed!!"); 
      } 

     //...other keylistener methods 
    } 

это работает только, если приложение открыто, хотя. так что это не то, чего я пытаюсь достичь. Если кто-то может указать мне в правильном направлении, я был бы признателен!

EDIT:

Я нашел этот пример, показывающий, частично то, что я ищу: http://supportforums.blackberry.com/t5/Java-Development/Allow-a-background-listener-to-detect-and-update-a-GUI/ta-p/442907 Одна проблема в том, что им делать это в симуляторе, и я не знаю, как осуществить этот код, чтобы я может действительно отлаживать то, как он работает. Мне сказали, что функция keylistener can not в фоновом режиме, что является неудачным, потому что его проще всего тестировать. Какие другие слушатели я мог бы настроить таким же образом, чтобы легко проверить и узнать, как код работает в симуляторе?

Спасибо!
Stephanie

+0

У вас есть проблемы с глобальными слушателями событий, не уверен, но вы можете искать – Swati

ответ

2

Вы не можете слушать вход keypad, trackball or trackpad, если ваше приложение не имеет экрана на переднем плане.

+0

doh !! ну это не то, на что я надеялся. Но я думаю, в общем, как бы я поставил слушателя в фоновом режиме, чтобы просто сидеть и платить за использование? –

+0

Ну, некоторые слушатели могут быть в фоновом режиме. GPS, уровень сигнала и многое другое. Пользовательский вход не может контролироваться фоновым приложением, потому что это позволит мне написать приложение, которое может блокировать ваши пароли. – Richard