7

我的应用程序中有一个媒体播放器,在搜索栏的两端有一个搜索栏和两个文本视图,用作计时器,我将在这个播放器中播放 .wav 文件。我在同一活动中也有一个编辑文本,我需要在播放过程中进行编辑。我的问题是,当正在播放时,如果正在触摸编辑文本,则会显示软键盘并且 UI 卡住,这意味着搜索栏更新和计时器更新卡住了。我正在使用使用处理程序的 timertask 更新它。任何人都可以帮助弄清楚这是什么问题。为什么显示软键盘时 UI 会卡住?

我尝试了许多其他方法来更新媒体播放器,猜测这将是使用 timertask 的问题。

  • 使用服务播放 mediaplyer 并使用处理程序将其更新为 UI。
  • 通过将进度作为消息发送,仅使用线程和处理程序。
  • 使用 Assynctask 并在 runOnUIthread 中更新它。

在所有这些情况下,当显示软键盘时,所有其他文本视图和搜索栏更新都会卡住。请帮助我摆脱这个问题。我完全卡住了:-(。有没有其他方法可以解决这个问题。

4

1 回答 1

3

Mediaplayer UI 卡住了,因为我试图使用 mediaplayer 当前位置更新 UI。因此,当显示软键盘并且 UI 正在同时访问媒体播放器时,因为媒体播放器实例很重,所以 UI 卡住了。所以我尝试了一种不同的方法来在播放时使用百分比更新 UI,这样就不需要访问 mediaplayer 当前位置。当我实现这个逻辑时,这个问题就解决了。

于 2013-09-17T03:22:10.933 回答