Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 1个家长服务和2个儿童服务 这是一个架构问题。_Java_Android_Android Service_Android Mediaplayer_Abstract - Fatal编程技术网

Java 1个家长服务和2个儿童服务 这是一个架构问题。

Java 1个家长服务和2个儿童服务 这是一个架构问题。,java,android,android-service,android-mediaplayer,abstract,Java,Android,Android Service,Android Mediaplayer,Abstract,我想要一个运行和管理2个子服务的全局服务 让我们称之为流媒体和儿童广播和播客 radio和podcast都使用mediaplayer api,但差别不大(raio是实时流媒体aac,podcast是来自http url的mp3) 广播和播客处于相同的活动中,但片段不同 这些服务为片段提供回调接口以更新ui 流媒体必须: 从应用程序开始运行 只要主活动正在运行,就一直运行 在应用程序完成()之前不能停止 “管理”其他服务 广播和播客 从单击某个按钮到单击另一个按钮或某个时间点(预先确定)

我想要一个运行和管理2个子服务的全局服务

让我们称之为流媒体和儿童广播播客

radio和podcast都使用mediaplayer api,但差别不大(raio是实时流媒体aac,podcast是来自http url的mp3)

广播和播客处于相同的活动中,但片段不同

这些服务为片段提供回调接口以更新ui


流媒体必须:
  • 从应用程序开始运行
  • 只要主活动正在运行,就一直运行
  • 在应用程序完成()之前不能停止
  • “管理”其他服务

广播和播客
  • 从单击某个按钮到单击另一个按钮或某个时间点(预先确定)的运行时间
  • 在用户决定或某个时间点(预先确定)之前不会被终止
  • 广播运行时,播客暂停或停止(反之亦然)
  • radio和podcast必须扩展服务并实现相同的回调方法

我已经找到了解决办法,但我不满意


等待其他想法吗?

如果
家长
同时控制
孩子
,那么孩子服务的触发器或按钮应
委托给家长。事实上,在你的情况下,父母似乎应该是孩子和外界之间唯一的接口。父级可以根据外部触发器和业务逻辑来决定何时暂停/停止哪个子级。

我想让它保持一般性,但如果父级的逻辑不够强大,无法直接管理子级,则可能会很复杂,请参见我的编辑,有一个基本上协调父母和孩子的控制器。好吧,父母的想法是为了简化工作并协调孩子。当然,你的控制器可以根据工作量和其他因素将任务从孩子分发给父母。将父级视为CPU,子级视为进程,您需要的是一个调度器(控制器)。我希望我说的有道理。在ui和主服务之间有一个“管理者”给我带来了什么?我的意思是:服务是全局保存的,所以我可以静态地获取它,在fragment onClick()方法中,我可以轻松地访问play()stop()方法,然后服务将该操作重定向到好的服务?