我有三个选项卡和三个 fragment 。我有一个服务在其中一个 fragment 中运行,服务正在从网络接收消息并更新 fragment ,因为该服务的广播接收器在 fragment 中。我想保留即使选择了特定选项卡,服务也一直在运行和更新 fragment 。当我在不停止服务的情况下更改选项卡时,我的应用程序崩溃了。
同样在 ActionBar.TabListener
的主要 Activity 中,我有 `
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
//ft.hide(fragment);
}
` 请帮助我如何实现这件事??
最佳答案
更改选项卡后,该 Fragment
将被销毁,该 fragment 的 View 也将被销毁。您将无法再更新该 Fragment
。
你应该处理不同的这个问题:
- 以某种方式缓存
Service
正在检索的任何内容,并且一旦创建了Fragment
从缓存中获取最新数据并显示 - (类似)使用绑定(bind)的
Service
,它会在您的Fragment
创建后不断检索您的“数据”并将其存储在Service
中,绑定(bind)到Service
并检索该数据。
关于android - 在 Fragment 中运行的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18654951/