cav*_*llo 16 android memory-leaks google-play-services google-play-games
我刚开始使用Google Play游戏服务,昨天在检查logcat时我无法注意到这个错误:
E/DataBuffer(3183):检测到DataBuffer对象内部数据泄漏!确保在完成所有DataBuffer扩展对象后显式调用close().(内部对象:com.google.android.gms.common.data.DataHolder@40555410)
它连续发生几次.我不完全确定它为什么会出现.它不会使我的应用程序崩溃,也不会使谷歌成就/排行榜功能停止工作.
我所知道的是它与"unlockAchievementImmediate"和"submitScoreImmediate"功能有关.
有没有人遇到此问题或有任何建议?
编辑:在我的应用程序中,我只使用"unlockAchievementImmediate"和"submitScoreImmediate".这些函数不返回任何需要关闭的缓冲区.
这些项扩展了DataBuffer:AchievementBuffer,AppStateBuffer,FilteredDataBuffer,GameBuffer,InvitationBuffer,LeaderboardBuffer,LeaderboardScoreBuffer,MetadataBuffer,MomentBuffer,ParticipantBuffer,PersonBuffer,PlayerBuffer,TurnBasedMatchBuffer.
这些通常出现在这些特定项目的听众中.例如:
public void onTurnBasedMatchesLoaded(int statusCode, LoadMatchesResponse response)
{
TurnBasedMatchBuffer buff = response.getMyTurnMatches();
// do some stuff with buff
buff.close()
}
public void onPlayersLoaded(int statusCode, PlayerBuffer buff)
{
Player p = buff.get(0);
buff.close();
}
Run Code Online (Sandbox Code Playgroud)
在我退出应用程序并重新进入之后,错误才会报告.如果我调用我的匹配3次并退出应用程序而不调用buff.close(),我可以在再次打开它时看到警告3次.添加buff.close(),它们就会消失.瞧!
| 归档时间: |
|
| 查看次数: |
10308 次 |
| 最近记录: |