1

我一直在使用 Robospice 来完成我的网络操作。在 Robospice 中,他们建议SpiceService(android 服务类的扩展)在片段的onAttach()方法中启动:

其他解决方案是使用第二种方法,即自己 进入SpiceManagerFragment.onAttach(...)释放SpiceManagerFragment.onDetach()

https://github.com/stephanenicolas/robospice/wiki/Advanced-RoboSpice-Usages-and-FAQ

所以我一直在尝试这样做,但我发现有时onAttach()当您使用带有Viewpager. 我创建了一个显示此问题的 github 存储库:

https://github.com/Winghin2517/ViewPagerFragmentSample

在我的 github 存储库中,我有 3 个片段和一个 viewpager。onAttach当每个片段的方法被调用并且结果不稳定时,我正在记录。关闭应用程序并重新启动它有时会产生这种情况:

12-27 12:55:17.085 8831-8831/? E/Fragment2: onAttachedActivity
12-27 12:55:17.085 8831-8831/? E/Fragment2: onAttachedContext
12-27 12:55:17.097 8831-8831/? E/Fragment1: onAttachedActivity
12-27 12:55:17.097 8831-8831/? E/Fragment1: onAttachedContext

或者只是这个:

12-27 12:56:30.018 8864-8864/? E/Fragment2: onAttachedActivity
12-27 12:56:30.022 8864-8864/? E/Fragment2: onAttachedContext

我正在记录public void onAttach(Context context)调用 api 23 的时间(这在日志中显示为“onAttachedContext”)以及何时public void onAttach(Activity activity)调用低于 23 的 api(这在日志中显示为“onAttachedActivity”),即使我正在使用支持库23.

每次应用程序启动时很少调用所有 3 个片段的onAttach方法,这意味着我用于网络操作的 robospice 服务也没有启动,偶尔会导致应用程序挂起。

如何让应用程序在启动时为所有片段调用所有 onAttach 方法?

4

0 回答 0