Android Activity引用在内存不足时为空

时间:2019-03-19 12:40:30

标签: android android-fragments memory android-activity low-memory

我有一个包含一个片段的活动,该片段使用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方法,如果它返回空值,则当片段为创建。 但是,在像三星onAttach这样的设备上,方法仍然返回null! 我认为这可能是内存不足的问题! 在任何情况下,如何从片段中引用我的活动?

1 个答案:

答案 0 :(得分:-2)

在清单文件中的application标签中添加这两行

axios.post(`${baseURI}/protocol/openid-connect/token`, data, {
  headers : {
    "Authorization" : "Basic " + token,
    "Content-Type" : "application/x-www-form-urlencoded"
  },
  withCredentials: true
}).then(response => {
  AUTH_TOKEN = response.data.access_token;
  console.log(response.data);
}).catch(error => {
  console.log(error.response);
})