Android 谷歌PlusOneButton泄露了一个上下文
我已经开始跟踪Android应用程序上的内存泄漏,多亏了这个伟大的库,我发现我的一些活动,包括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,但这个问题在以前的版本中也出现
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按钮;导致上下文泄漏。