2011-01-11 71 views
0

大家好! 我是黑莓編程新手,雖然我的確有一些 java的經驗,用c#是我的主要語言)。黑莓背景聽衆線程

我想要做的是編寫一個線程,該線程將在系統啓動時運行,並作爲偵聽器存在於後臺。

我希望我的應用程序實現KeyListener,並且在打開手機時基本坐在背景中,並跟蹤每個按鈕被按下多少次的直方圖。我目前正在模擬器上運行,所以現在我只是在它獲取密鑰時將它打印到控制檯。

我已經能夠在UIApplication中實現keyListener,但它只在應用程序加載時才起作用。

這裏是應用程序,我目前

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 
    } 

這隻能如果應用程序是,雖然開放。所以它不是我想要達到的。如果任何人都能指出我正確的方向,我會很感激!

編輯:

我發現這個例子中,顯示部分就是我在尋找:http://supportforums.blackberry.com/t5/Java-Development/Allow-a-background-listener-to-detect-and-update-a-GUI/ta-p/442907 的一個問題是,即時通訊在模擬器這樣做的,我不知道如何行使這個代碼,以便我可以真正調試通過它的工作方式。我被告知keylistener不能在後臺運行,這是不幸的,因爲它是最容易測試的。我還可以用同樣的方式設置其他聽衆,以便輕鬆測試和了解代碼在模擬器中的工作方式?

謝謝!
Stephanie

+0

你試過全球事件聽衆,不知道但你可以搜索 – Swati 2011-01-12 04:25:24

回答

2

你不能聽keypad, trackball or trackpad輸入,除非你的應用程序在前臺有一個屏幕。

+0

doh !!以及那不是我所希望的。但我想一般情況下,我會如何在後臺放置一個聽衆來坐下並注意使用情況? – 2011-01-12 19:04:01