我在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或其他安全问题的垃圾收集器的问题吗?
答案 0 :(得分:1)
一种好的方法是Bind
服务,并在需要时查询详细信息。我不建议在Application
类上设置任何临时数据,因为这会强制您保持同步并导致问题。
P.S。整个应用程序没有OnResume
。