黑莓背景听众线程

时间:2011-01-11 19:00:45

标签: java multithreading blackberry listeners

嘿大家好! 我是黑莓编程的新手,虽然我有一些 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无法在后台运行,这是不幸的,因为它最容易测试。我可以用同样的方式设置哪些其他听众来轻松测试和学习代码在模拟器中的工作方式?

谢谢!
斯蒂芬妮

1 个答案:

答案 0 :(得分:2)

除非您的应用程序在前台有一个屏幕,否则您无法监听keypad, trackball or trackpad输入。