在Android上,哪种方式最适合服务与OnResume上的应用程序进行通信

时间:2015-02-09 08:19:33

标签: android android-fragments service xamarin

我在Xamarin.Android上构建一个应用程序,播放音乐,使用简单的服务播放即时音乐。即使应用程序最小化,服务也会继续播放音乐。对于片段和服务之间的通信,我使用MessageBus,我使用Application类来存储许多片段所需的所有数据,直到应用程序关闭。

我有一个问题,哪个是更新OnResume事件片段的最佳方法,即当前播放曲目发生变化(最小化和暂停后):

我正在考虑其中一种方式:

1)Application类存储当前播放列表,其中包含曲目名称,resid等和当前列表位置,因此我想到Application类的OnResume事件更新值,然后将片段的OnResume事件更新为从Application类中获取值。但问题是,我怎么能确定应用OnResume事件会在片段的同一事件之前触发?

2)OnResume事件上的片段,用于向服务发送请求以获取当前数据,然后将它们也发送到Application类,以便从其他片段中使用。

你认为哪种方法最好?

使用

也是一样的
public int listpos { get; set;}

而不是

private int listpos;

并使用函数获取或设置值?我会遇到带有public int或其他安全问题的垃圾收集器的问题吗?

1 个答案:

答案 0 :(得分:1)

一种好的方法是Bind服务,并在需要时查询详细信息。我不建议在Application类上设置任何临时数据,因为这会强制您保持同步并导致问题。

P.S。整个应用程序没有OnResume