我正在使用android sdk提供的示例媒体播放器。 MainActivity使用startService(new Intent(MusicService.ACTION_PLAY))
启动Service MusicService。
我需要在服务中找到ID的视图,但我不知道该怎么做:
findViewById(R.id.playbutton).setVisibility(View.GONE);
我发现了一些类似的问题,但没有一个提供简单的解决方案(最相似的问题是接受的答案实际上是“不,你不能”,我确信这是可能的)。如何在服务中使这条线路工作?我是否必须将MainActivity中的上下文传递给它,我该怎么做?
答案 0 :(得分:2)
由于服务处理媒体播放,因此应该在播放/暂停之前直接更新界面,这就是我需要更新ui的原因
不,你没有。您需要让UI知道(如果存在)有关状态更改的信息。用户界面将影响其自身的变化。可能根本没有任何UI,具体取决于用户的操作。
为了让任何受影响的UI知道状态变化,您可以:
Intent
或LocalBroadcastManager
发送“窄播”Intent
(非常类似于广播,但它完全在您的流程中),或者