在创建片段时,我遇到了getActivity()为null。 所以为了缩小这个问题,我在onAttach(活动活动)中保留了一个活动的本地副本,根据定义,它是附加到活动的时间。onAttach活动为空
但是,我在onAttach中记录了活动,但它仍然为空。
我只在2.3.6及以下版本遇到这个问题。
这是支持包的已知问题吗?
在创建片段时,我遇到了getActivity()为null。 所以为了缩小这个问题,我在onAttach(活动活动)中保留了一个活动的本地副本,根据定义,它是附加到活动的时间。onAttach活动为空
但是,我在onAttach中记录了活动,但它仍然为空。
我只在2.3.6及以下版本遇到这个问题。
这是支持包的已知问题吗?
这个问题是因为支持包就意味着该片段是在Android 3.0及以上即API级别11和UP所以确保你将面临崩溃的应用程序为Android 2.3.6 gingerbird
this.getActivity();
被称为将片段恢复到恢复状态的一系列方法是:
bold方法应该是getActivity不再返回null的方法。
onAttach方法不应该用来调用活动对象的方法,它应该用来初始化回调接口。这些接口的一个例子可以参见here。
事实是,它是空的。我确定先调用super.onAttach,然后跟踪onAttach参数中的活动,它是空的。这是2.3.6用户中的一小部分,这让我怀疑它是一个错误。 getActivity(),不仅仅在onActivityCreated(Bundle)上,而且一直到onResume,都显示为null,这是促使我首先在onAttach上跟踪的原因。 – 2013-03-21 16:53:47
我一直在大量的2.x设备上运行类似的代码。我曾经有类似的空指针,但是通过将一些代码移动到onResume()来解决这些问题。 – Tobrun 2013-03-21 16:56:32
然后在onAttach中初始化侦听器的时候,它们可能会从null初始化并因此保持null本身。 – 2016-04-01 07:13:42
旋转设备后会发生这种情况吗?无论如何,如果你等待'onActivityCreated()'会发生什么? – Sam 2013-03-21 16:42:30
这个应用程序特别禁用了旋转。 onActivityCreated()仍然具有getActivity()作为null,因为之前我保留了一个本地副本来找出它的空位置。我的用户界面操作方式已经过去了,getActivity()仍然是空的。 – 2013-03-21 16:45:17