Java 获取一个对象";碎片管理器“;在;服务“;
是否可以在“服务”中获取对象“FragmentManager”?是否可以从“服务”中的“活动”传递对象“FragmentManager” PS:包括官方不支持的功能 是否可以在“服务”中获取对象“FragmentManager” 不,对不起 是否可以从“服务”中的“活动”传递对象“FragmentManager” 那将是一个非常糟糕的主意 如果您希望您的服务更新您的UI,请记住可能没有UI。欢迎用户按返回或主页按钮退出UI,即使您的服务正在运行 还要记住,它可能是一个不同的UI。例如,当用户将设备从纵向旋转到横向时,您的活动(以及默认情况下的片段)将被销毁并重新创建。或者,用户可以点击将不同的活动带到前台的东西,并且该活动有自己的片段和管理器 因此,要让服务更新UI,您需要使用支持这种解耦操作的通信路径,例如:Java 获取一个对象";碎片管理器“;在;服务“;,java,android,service,Java,Android,Service,是否可以在“服务”中获取对象“FragmentManager”?是否可以从“服务”中的“活动”传递对象“FragmentManager” PS:包括官方不支持的功能 是否可以在“服务”中获取对象“FragmentManager” 不,对不起 是否可以从“服务”中的“活动”传递对象“FragmentManager” 那将是一个非常糟糕的主意 如果您希望您的服务更新您的UI,请记住可能没有UI。欢迎用户按返回或主页按钮退出UI,即使您的服务正在运行 还要记住,它可能是一个不同的UI。例如,当用户将设
- 广播
- 使用
LocalBroadcastManager
- 通过
更新内容,使用ContentProvider
或CursorLoader
的活动将收到有关数据更改的通知ContentObserver
- 等等
FragmentManager
实例。请尝试使用LocalBroadcastManager。但是一个新的问题是:如果我的活动不是活动的,那么它可以从缓存中删除。然后它将停止接收消息。是否可以设置一个标志,以便不从缓存中删除活动?@K.G.V:如果用户按BACK,则您的活动将被销毁,并且没有任何消息可接收。如果您创建该活动的新实例(例如基于用户输入),它将需要查询您的数据库或其他内容以获取当前状态。在任何其他情况下(如用户按HOME键),您的活动仍然存在。“是否可以设置一个标志,以便不从缓存中删除活动?”--不,不超过您可以在Web应用中设置一个标志,以防止用户切换到其Web浏览器中的其他页面。