0

我有一个包含片段的活动,该片段使用 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 !我认为这可能是一个内存不足的问题!在任何情况下,如何从我的片段中获取对我的活动的引用?

4

1 回答 1

-2

在应用程序标记的清单文件中添加这两行

 android:hardwareAccelerated="false"
 android:largeHeap="true"
于 2019-03-19T13:02:26.707 回答