sendKeyDownUpSync无法正常工作

时间:2012-08-29 08:23:21

标签: android instrumentation keyevent

我遇到了 sendKeyDownUpSync 的问题。我想在我的小部件中使用它来控制内置的音乐播放器。它几乎正常工作。几乎是因为当我打电话给函数时:

public void previousTruck()
    {
        final Instrumentation inst = new Instrumentation();
        new Thread(new Runnable() {         
            public void run() { 
                   new Instrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_MEDIA_PREVIOUS);

        }).start();     
    }

它开始改变我的播放列表中的音乐,但很多时候,为什么? 我想从播放列表中只向下一首歌做一步“。”

1 个答案:

答案 0 :(得分:1)

OnCreate

中的某个地方
myThread = new Thread()
{
    public void run()
    {
        Instrumentation m_Instrumentation = new Instrumentation();
        m_Instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_MEDIA_PREVIOUS);
    }
};

previousTruck

中的某个地方
myThread.start();

<强> P.S。注意!! 在没有 run()调用的情况下创建Thread对象会导致内存泄漏 - see。如果在 OnCreate 中创建一个线程对象,并且在下一次更改屏幕方向时没有 run()调用,则会在更改屏幕方向时发生。这就是为什么最好的方法是在 start()调用之前立即创建Thread对象。