FindTypeById在类类型服务中?

时间:2013-01-30 03:33:31

标签: java android

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

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

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

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

1 个答案:

答案 0 :(得分:2)

  

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

不,你没有。您需要让UI知道(如果存在)有关状态更改的信息。用户界面将影响其自身的变化。可能根本没有任何UI,具体取决于用户的操作。

为了让任何受影响的UI知道状态变化,您可以:

  • 发送常规广播Intent
  • 使用LocalBroadcastManager发送“窄播”Intent(非常类似于广播,但它完全在您的流程中),或者
  • 使用Otto作为活动总线