在 Android 上,哪种方式最适合服务在 OnResume 上与我的应用程序通信
On Android which way is the best in order for a service to communicate with my app on OnResume
我正在 Xamarin.Android 上构建一个播放音乐的应用程序,如果应用程序最小化服务继续播放音乐,我将使用简单的 service.Even 播放音乐。对于片段和服务之间的通信,我使用 MessageBus 并使用 Application class 来存储许多片段需要的所有数据,直到应用程序关闭。
我有一个问题,关于在当前播放曲目发生变化(最小化和暂停后)的 OnResume 事件上更新片段的最佳方式是什么:
我正在考虑其中一种方法:
1) 应用程序 class 正在存储当前播放列表以及曲目名称、resid 等和当前列表位置,因此我正在考虑应用程序 class 的 OnResume 事件来更新值然后在片段的 OnResume 事件上从应用程序 class 中获取值。但问题是,我如何确定应用程序 OnResume 事件会在片段的同一事件之前触发?
2) OnResume 事件上的片段向服务发送请求以获取当前数据,然后将它们也发送到应用程序 class 以便从其他片段中使用。
您认为哪种方法最好?
也一样用
public int listpos { get; set;}
而不是
private int listpos;
并使用函数获取或设置值? public int 或其他一些安全问题的垃圾收集器会出现问题吗?
一个好的方法是 Bind
到该服务并在需要时查询它以获取详细信息。我不建议在 Application
class 上设置任何 temporary 数据,因为这会迫使您保持同步并可能导致问题。
P.S。整个应用程序没有OnResume
。
我正在 Xamarin.Android 上构建一个播放音乐的应用程序,如果应用程序最小化服务继续播放音乐,我将使用简单的 service.Even 播放音乐。对于片段和服务之间的通信,我使用 MessageBus 并使用 Application class 来存储许多片段需要的所有数据,直到应用程序关闭。
我有一个问题,关于在当前播放曲目发生变化(最小化和暂停后)的 OnResume 事件上更新片段的最佳方式是什么:
我正在考虑其中一种方法:
1) 应用程序 class 正在存储当前播放列表以及曲目名称、resid 等和当前列表位置,因此我正在考虑应用程序 class 的 OnResume 事件来更新值然后在片段的 OnResume 事件上从应用程序 class 中获取值。但问题是,我如何确定应用程序 OnResume 事件会在片段的同一事件之前触发?
2) OnResume 事件上的片段向服务发送请求以获取当前数据,然后将它们也发送到应用程序 class 以便从其他片段中使用。
您认为哪种方法最好?
也一样用
public int listpos { get; set;}
而不是
private int listpos;
并使用函数获取或设置值? public int 或其他一些安全问题的垃圾收集器会出现问题吗?
一个好的方法是 Bind
到该服务并在需要时查询它以获取详细信息。我不建议在 Application
class 上设置任何 temporary 数据,因为这会迫使您保持同步并可能导致问题。
P.S。整个应用程序没有OnResume
。