0

我正在使用 android sdk 提供的示例媒体播放器。MainActivity 使用 启动 Service MusicService startService(new Intent(MusicService.ACTION_PLAY))

我需要在服务中按 ID 查找视图,但我不知道该怎么做:

    findViewById(R.id.playbutton).setVisibility(View.GONE);

我发现了一些类似的问题,但没有一个提供简单的解决方案(最相似的问题接受的答案实际上是“不,你不能”,我相信这是可能的)。我怎样才能使这条线在服务中工作?我是否必须将上下文从 MainActivity 传递给它,我该怎么做?

4

1 回答 1

2

由于该服务处理媒体播放,因此应在播放/暂停之前直接更新界面,这就是我需要从中更新 ui 的原因

你不可以。您需要让 UI 知道状态变化(如果存在)。UI 将影响它自己认为合适的更改。可能根本没有任何 UI,这取决于用户所做的事情。

为了让任何受影响的 UI 部分了解状态更改,您可以:

  • 发送常规广播Intent,或
  • 用于LocalBroadcastManager发送“窄播” Intent(很像广播,但它完全在您的流程中),或者
  • 使用Otto作为事件总线
于 2013-01-30T03:55:23.073 回答