我有一个包含片段的活动,该片段使用 android youtube api 播放 youtube 视频,并在完成时为 youtube 视频注册一个事件侦听器。在onVideoEnded
事件中,我获得对活动的引用以执行某些操作,这就是我在片段中获取活动的方式:
private Activity theActivity;
@Override
public void onAttach(Context context) {
super.onAttach(context);
theActivity = (Activity) context;
}
/*
* Deprecated on API 23
* Use onAttachToContext instead
*/
@SuppressWarnings("deprecation")
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if (Build.VERSION.SDK_INT < 23) {
theActivity = activity;
}
}
@Override
public void onDetach() {
super.onDetach();
theActivity = null;
}
protected Activity getTheActivity() {
Activity activity = getActivity();
if (activity != null)
return activity;
else return this.theActivity;
}
正如您在我getTheActivity
的方法中看到的,我首先检查getActivity
方法,如果它返回 null 值,我会得到onAttach
创建片段时得到的变量。但是在像三星getTheActivity
方法这样的设备上仍然返回 null !我认为这可能是一个内存不足的问题!在任何情况下,如何从我的片段中获取对我的活动的引用?