内存耗尽,应用程序停止工作

时间:2017-01-19 21:16:01

标签: android memory firebase

我一直在通过Android Studio使用Firebase编写多人游戏,并希望玩家能够打开服务器。当我点击Create Button时,应用程序应该创建新的Server并将播放器放入其中,然后打开服务器的活动,但是我的内存有问题,我找不到真正的原因。

问题说明:(重复非常快,应用程序停止响应)

D/dalvikvm: GC_FOR_ALLOC freed 8190K, 23% free 27797K/36044K, paused 14ms, total 14ms

经过一番研究,我设法发现这段代码可能是导致这个问题的原因,但我不知道如何修复它/什么是真正的原因。

serversRef.child("S"+id).child("id").setValue(id);
serversRef.child("S"+id).child("name").setValue(serverNameEt.getText().toString());
if(serverPasswordEt.getText().toString().equals(""))
   serversRef.child("S"+id).child("password").setValue("~");
else
   serversRef.child("S"+id).child("password").setValue(serverPasswordEt.getText().toString());
serversRef.child("S"+id).child("isJoinable").setValue(true);
serversRef.child("S"+id).child("isCustom").setValue(true);
serversRef.child("S"+id).child("gameState").setValue("pregame");
serversRef.child("S"+id).child("question").setValue("please wait for players");
serversRef.child("S"+id).child("roundsToWin").setValue(slotsSb.getProgress() + 5);
serversRef.child("S"+id).child("slots").setValue(slotsSb.getProgress() + 3);
CustomUser customUser = new CustomUser(false, currentUser.getUsername(), "answer", 0, currentUser.getWins(), 0);
serversRef.child("S"+id).child("player0").setValue(customUser);
Intent intent = new Intent(ServerSetupActivity.this,ServerActivity.class);
intent.putExtra("currentUser",currentUser);
intent.putExtra("serverNum",id);
Log.d("startingActivity","ID"+id);
startActivity(intent);

Firebase数据添加得很好,如果其他用户尝试加入服务器,则可以为他们工作。

修改

经过一些进一步的调查后,似乎即使是一行setValue也会在这里引起这个问题,但是应用程序中的任何其他位置都可以正常运行......

0 个答案:

没有答案