Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌PlusOneButton泄露了一个上下文_Android_Memory Leaks_Google Play Services_Google Plus One_Leakcanary - Fatal编程技术网

Android 谷歌PlusOneButton泄露了一个上下文

Android 谷歌PlusOneButton泄露了一个上下文,android,memory-leaks,google-play-services,google-plus-one,leakcanary,Android,Memory Leaks,Google Play Services,Google Plus One,Leakcanary,我已经开始跟踪Android应用程序上的内存泄漏,多亏了这个伟大的库,我发现我的一些活动,包括GooglePlusButton正在泄漏上下文 不幸的是,我没有找到一个解决办法来避免它。如上所述,initialize方法隐藏了它需要上下文的事实。此外,它需要一个活动上下文;Android studio反编译器显示了这一点(bug reporter也告诉它): 有没有比完全取消+1按钮更好的解决方法 注意:我使用的是Google Play Services 9.6.0,但这个问题在以前的版本中也出现

我已经开始跟踪Android应用程序上的内存泄漏,多亏了这个伟大的库,我发现我的一些活动,包括
GooglePlusButton
正在泄漏上下文

不幸的是,我没有找到一个解决办法来避免它。如上所述,initialize方法隐藏了它需要上下文的事实。此外,它需要一个活动上下文;Android studio反编译器显示了这一点(bug reporter也告诉它):

有没有比完全取消+1按钮更好的解决方法


注意:我使用的是Google Play Services 9.6.0,但这个问题在以前的版本中也出现过

如错误消息中所述,如果您使用的是不在活动中的G+1按钮(例如在应用程序栏菜单中),则需要通过调用方法initialize(String,OnPlusOneClickListener)对其进行初始化

使用URL更新+1按钮。大多数应用程序在每次按钮处于焦点时调用此方法(例如,在Activity onResume方法中)。要使用此方法,必须将PlusOneButton放置在活动中否则使用初始化(字符串,OnPlusOneClickListener)

更多信息请点击此处:

如错误消息中所述,如果您在活动中未使用G+1按钮(例如在应用程序栏菜单中),则需要通过调用方法initialize(String,OnPlusOneClickListener)对其进行初始化

使用URL更新+1按钮。大多数应用程序在每次按钮处于焦点时调用此方法(例如,在Activity onResume方法中)。要使用此方法,必须将PlusOneButton放置在活动中否则使用初始化(字符串,OnPlusOneClickListener)

更多信息请点击此处:
前面的答案为我指明了一个新的方向。最后,我通过动态创建G+1按钮并为构造函数提供应用程序上下文来管理它:

mPlusOneButton =  new PlusOneButton(getApplicationContext());
parent.addView(mPlusOneButton);
...
mPlusOneButton.initialize(..., new PlusOneButton.OnPlusOneClickListener() {
        @Override
        public void onPlusOneClick(Intent intent) {...}
      });

前面的答案为我指明了一个新的方向。最后,我通过动态创建G+1按钮并为构造函数提供应用程序上下文来管理它:

mPlusOneButton =  new PlusOneButton(getApplicationContext());
parent.addView(mPlusOneButton);
...
mPlusOneButton.initialize(..., new PlusOneButton.OnPlusOneClickListener() {
        @Override
        public void onPlusOneClick(Intent intent) {...}
      });

谢谢你的评论,但我的问题是在活动中使用G+1按钮;导致上下文泄漏。感谢您的评论,但我的问题是在活动中使用G+1按钮;导致上下文泄漏。