8

在创建片段时,我遇到 getActivity() 为空。所以为了缩小问题的范围,我在 onAttach(Activity activity) 中保留了一个本地活动副本,根据定义,它是附加到一个活动的。

但是,我在 onAttach 中记录了该活动,但它仍然为空。

我只在 2.3.6 及以下版本中遇到这个问题。

这是支持包的已知问题吗?

4

2 回答 2

9

将片段恢复到恢复状态的一系列方法是:

  • 一旦片段与其活动相关联,就会调用 onAttach(Activity)。
  • onCreate(Bundle) 调用以进行片段的初始创建。
  • onCreateView(LayoutInflater, ViewGroup, Bundle) 创建并返回与片段关联的视图层次结构。
  • onActivityCreated(Bundle) 告诉片段它的活动已经完成了它自己的 Activity.onCreate()。
  • onViewStateRestored(Bundle) 告诉片段其视图层次结构的所有已保存状态都已恢复。
  • onStart() 使片段对用户可见(基于其包含的活动正在启动)。
  • onResume() 使片段与用户交互(基于其包含的活动被恢复)。

粗体方法应该是 getActivity 不再返回 null 的方法。

onAttach方法不应该用来调用活动对象的方法,它应该用来初始化回调接口。可以在此处找到这些接口的示例。

于 2013-03-21T16:49:59.783 回答
-3

这个问题是因为支持包,这意味着片段来自 android 3.0 及更高版本,即 API 级别 11 和 UP,因此您肯定会面临 android 2.3.6 姜鸟的应用程序崩溃

this.getActivity();
于 2013-03-21T16:45:58.480 回答