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

标签 android android-fragments service xamarin

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

我有一个问题,关于在当前播放轨道发生变化(最小化和暂停后)的 OnResume 事件上更新 fragment 的最佳方式是什么:

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

1) Application 类正在存储当前播放列表以及轨道名称、resid 等和当前列表位置,所以我正在考虑 Application 类的 OnResume 事件来更新值,然后在 fragment 的 OnResume 事件上从 Application 类中获取值。但问题是,我如何确定应用程序 OnResume 事件会在 fragment 的同一事件之前触发?

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

您认为哪种方法最好?

也是一样用

public int listpos { get; set;}

代替

private int listpos;

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

最佳答案

一个好的方法是Bind 到服务并在需要时查询它以获取详细信息。我不建议在 Application 类上设置任何临时数据,因为这会迫使您保持同步并可能导致问题。

附言整个应用程序没有 OnResume

关于android - 在 Android 上,哪种方式最适合服务在 OnResume 上与我的应用程序通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28405438/

相关文章:

Android:CursorLoader 在非最顶层的 Fragment 上崩溃

android - 将 ArrayList<pojo> 保存在 SharedPreferences 中

android - 打开移动设备时如何检查我的Android应用程序?

java - react native : Android Native Module

java - Android-如何在 Canvas 上拖动图片

android - 无法找到可选库 : android. test.runner

android - 作为后台服务的报警服务

android - 如何计算媒体播放器的振幅分贝 (dB)?

android - 显示 fragment 时停止滚动 CollapsingToolbarLayout

c# - Windows 7 操作系统中的服务不使用主机文件作为本地服务