Java 单方法内存泄漏
整个内存泄漏的事情对我来说似乎很复杂。这里有很多很好的信息,但我不能完全理解。即使读完了,我还是迷路了!有人能告诉我这个代码的内存泄漏在哪里吗?(重复运行此方法时会发生这种情况。)非常感谢Java 单方法内存泄漏,java,android,memory-leaks,heap,Java,Android,Memory Leaks,Heap,整个内存泄漏的事情对我来说似乎很复杂。这里有很多很好的信息,但我不能完全理解。即使读完了,我还是迷路了!有人能告诉我这个代码的内存泄漏在哪里吗?(重复运行此方法时会发生这种情况。)非常感谢 08-11 23:02:07.487: I/ViewRootImpl(969): Reporting drop result: true 08-11 23:02:07.987: D/dalvikvm(969): GC_FOR_ALLOC freed 1769K, 18% free 10101K/12180K,
08-11 23:02:07.487: I/ViewRootImpl(969): Reporting drop result: true
08-11 23:02:07.987: D/dalvikvm(969): GC_FOR_ALLOC freed 1769K, 18% free 10101K/12180K, paused 13ms, total 13ms
08-11 23:02:08.057: D/dalvikvm(969): GC_CONCURRENT freed 4K, 11% free 10915K/12180K, paused 3ms+5ms, total 30ms
08-11 23:02:08.057: D/dalvikvm(969): WAIT_FOR_CONCURRENT_GC blocked 1ms
08-11 23:02:14.757: I/dalvikvm(969): threadid=3: reacting to signal 3
08-11 23:02:14.767: I/dalvikvm(969): Wrote stack traces to '/data/anr/traces.txt'
公开作废交易(视图五){
//打电话玩
如果(已处理){
如果(下注==下注){
//手戏
处理=假;
deal.setImageResource(R.drawable.deal);
fold.setImageResource(R.drawable.clear);
dealersCards.clear();
经销商卡。添加(d1);
经销商卡。添加(d2);
经销商卡。添加(d3);
显示卡(经销商卡);
如果(getHand(pc1、pc2、pc3)>getHand(dc1、dc2、dc3)
&&getHand(dc1、dc2、dc3)>=1120000){
奖励=真实;
赌注(赌注);
奖励=真实;
玩(游戏赌注);
}否则如果(getHand(dc1、dc2、dc3)<1120000){
奖励=真实;
赌注(赌注);
}
否则{
如果(!(getHand(pc1,pc2,pc3)=getHand(dc1,dc2,dc3))){
奖励=真实;
赌注(-anteBet);
奖励=真实;
play(-playBet);
}
}
antePlusPayout();
pairPlusPayout();
}否则{
玩(赌注-赌注);
}
//交易卡
}否则如果(赌注>0){
deal.setImageResource(R.drawable.call);
fold.setImageResource(R.drawable.fold);
显示卡(显示器);
d1.设置图像资源(R.可绘制。面朝下);
d2.setImageResource(R.drawable.facedown);
d3.setImageResource(R.drawable.facedown);
处理=正确;
deal.setImageResource(R.drawable.call);
}
}
公共作废显示卡(列表显示){
int cardNumber=0;
用于(图像视图c:disp){
cardNumber++;
卡片-临时卡片;
做{
tempCard=deck.get(rand(52));
}while(cardsInPlay.contains(tempCard));
cardsInPlay.add(临时卡);
rank=tempCard.getRank();
suit=tempCard.getSuit();
如果(卡号==1){
dc1=临时卡;
}否则如果(卡号==2){
dc2=临时卡;
}否则如果(卡号==3){
dc3=临时卡;
}否则如果(卡号==4){
pc1=临时卡;
}否则如果(卡号==5){
pc2=临时卡;
}否则{
pc3=临时卡;
}
如果(排名=2,诉讼=c){
c、 setImageResource(R.drawable.clubs2);
}否则,如果(排名==3&&suit==c'){
c、 setImageResource(R.drawable.clubs3);
}否则,如果(排名==4&&suit==c'){
c、 setImageResource(R.drawable.clubs4);
}否则,如果(排名=5&&suit='c'){
c、 setImageResource(R.drawable.clubs5);
}否则,如果(排名==6&&suit==c){
c、 setImageResource(R.drawable.clubs6);
}否则,如果(排名==7&&suit==c){
c、 setImageResource(R.drawable.clubs7);
}否则,如果(排名==8&&suit==c'){
c、 setImageResource(R.drawable.clubs8);
}否则,如果(排名==9&&suit==c'){
c、 setImageResource(R.drawable.clubs9);
}否则,如果(排名=10,诉讼=c){
c、 setImageResource(R.drawable.clubs10);
}否则,如果(排名=11&&suit='c'){
c、 setImageResource(R.drawable.clubsj);
}否则,如果(排名==12,诉讼='c'){
c、 setImageResource(R.drawable.clubsq);
}否则,如果(排名=13&&suit='c'){
c、 setImageResource(R.drawable.clubsk);
}否则,如果(排名==14,诉讼==c){
c、 setImageResource(R.drawable.clubsa);
}
否则如果(排名==2&&suit==d'){
c、 setImageResource(R.drawable.diamonds2);
}否则,如果(排名==3&&suit==d'){
c、 setImageResource(R.drawable.diamonds3);
}否则如果(排名==4&&suit==d'){
c、 setImageResource(R.可拉伸钻石4);
}否则,如果(排名==5&&suit='d'){
c、 setImageResource(R.可绘制钻石5);
}否则,如果(排名=6,诉讼=d){
c、 setImageResource(R.可拉伸钻石6);
}否则,如果(排名==7&&suit==d'){
c、 setImageResource(R.drawable.diamonds7);
}否则,如果(排名==8&&suit==d'){
c、 setImageResource(R.drawable.diamonds8);
}否则,如果(排名==9&&suit==d'){
c、 setImageResource(R.drawable.diamonds9);
}否则,如果(排名=10,诉讼=d){
c、 setImageResource(R.可拉伸直径10);
}否则,如果(排名=11,诉讼=d){
c、 setImageResource(R.drawable.diamondsj);
}否则,如果(排名=12,诉讼=d){
c、 setImageResource(R.drawable.diamondsq);
}否则,如果(排名=13,诉讼=d){
c、 setImageResource(R.drawable.diamondsk);
}否则,如果(排名=14,诉讼=d){
c、 setImageResource(R.drawable.diamondsa);
}
否则,如果(排名==2&&suit==h'){
c、 setImageResource(R.drawable.hearts2);
}否则,如果(排名==3&&suit==h'){
c、 setImageResource(R.drawable.hearts3);
}否则如果(排名==4&&suit==h'){
c、 setImageResource(R.drawable.hearts4);
}否则,如果(排名==5&&suit==h'){
c、 setImageResource(R.drawable.hearts5);
}否则,如果(排名=6,诉讼=h){
c、 setImageResource(R.drawable.hearts6);
}否则如果(排名==7&&suit==h'){
c、 setImageResource(R.drawable.hearts7);
}否则,如果(排名==8&&suit==h'){
c、 setImageResource(R.drawabl
public void deal(View v) {
// call and play
if (dealt) {
if (anteBet == playBet) {
// hand plays
dealt = false;
deal.setImageResource(R.drawable.deal);
fold.setImageResource(R.drawable.clear);
dealersCards.clear();
dealersCards.add(d1);
dealersCards.add(d2);
dealersCards.add(d3);
displayCards(dealersCards);
if (getHand(pc1, pc2, pc3) > getHand(dc1, dc2, dc3)
&& getHand(dc1, dc2, dc3) >= 1120000) {
award = true;
ante(anteBet);
award = true;
play(playBet);
} else if (getHand(dc1, dc2, dc3) < 1120000) {
award = true;
ante(anteBet);
}
else {
if (!(getHand(pc1, pc2, pc3) == getHand(dc1, dc2, dc3))) {
award = true;
ante(-anteBet);
award = true;
play(-playBet);
}
}
antePlusPayout();
pairPlusPayout();
} else {
play(anteBet - playBet);
}
// deal cards
} else if (anteBet > 0) {
deal.setImageResource(R.drawable.call);
fold.setImageResource(R.drawable.fold);
displayCards(display);
d1.setImageResource(R.drawable.facedown);
d2.setImageResource(R.drawable.facedown);
d3.setImageResource(R.drawable.facedown);
dealt = true;
deal.setImageResource(R.drawable.call);
}
}
public void displayCards(List<ImageView> disp) {
int cardNumber = 0;
for (ImageView c : disp) {
cardNumber++;
Card tempCard;
do {
tempCard = deck.get(rand(52));
} while (cardsInPlay.contains(tempCard));
cardsInPlay.add(tempCard);
rank = tempCard.getRank();
suit = tempCard.getSuit();
if (cardNumber == 1) {
dc1 = tempCard;
} else if (cardNumber == 2) {
dc2 = tempCard;
} else if (cardNumber == 3) {
dc3 = tempCard;
} else if (cardNumber == 4) {
pc1 = tempCard;
} else if (cardNumber == 5) {
pc2 = tempCard;
} else {
pc3 = tempCard;
}
if (rank == 2 && suit == 'c') {
c.setImageResource(R.drawable.clubs2);
} else if (rank == 3 && suit == 'c') {
c.setImageResource(R.drawable.clubs3);
} else if (rank == 4 && suit == 'c') {
c.setImageResource(R.drawable.clubs4);
} else if (rank == 5 && suit == 'c') {
c.setImageResource(R.drawable.clubs5);
} else if (rank == 6 && suit == 'c') {
c.setImageResource(R.drawable.clubs6);
} else if (rank == 7 && suit == 'c') {
c.setImageResource(R.drawable.clubs7);
} else if (rank == 8 && suit == 'c') {
c.setImageResource(R.drawable.clubs8);
} else if (rank == 9 && suit == 'c') {
c.setImageResource(R.drawable.clubs9);
} else if (rank == 10 && suit == 'c') {
c.setImageResource(R.drawable.clubs10);
} else if (rank == 11 && suit == 'c') {
c.setImageResource(R.drawable.clubsj);
} else if (rank == 12 && suit == 'c') {
c.setImageResource(R.drawable.clubsq);
} else if (rank == 13 && suit == 'c') {
c.setImageResource(R.drawable.clubsk);
} else if (rank == 14 && suit == 'c') {
c.setImageResource(R.drawable.clubsa);
}
else if (rank == 2 && suit == 'd') {
c.setImageResource(R.drawable.diamonds2);
} else if (rank == 3 && suit == 'd') {
c.setImageResource(R.drawable.diamonds3);
} else if (rank == 4 && suit == 'd') {
c.setImageResource(R.drawable.diamonds4);
} else if (rank == 5 && suit == 'd') {
c.setImageResource(R.drawable.diamonds5);
} else if (rank == 6 && suit == 'd') {
c.setImageResource(R.drawable.diamonds6);
} else if (rank == 7 && suit == 'd') {
c.setImageResource(R.drawable.diamonds7);
} else if (rank == 8 && suit == 'd') {
c.setImageResource(R.drawable.diamonds8);
} else if (rank == 9 && suit == 'd') {
c.setImageResource(R.drawable.diamonds9);
} else if (rank == 10 && suit == 'd') {
c.setImageResource(R.drawable.diamonds10);
} else if (rank == 11 && suit == 'd') {
c.setImageResource(R.drawable.diamondsj);
} else if (rank == 12 && suit == 'd') {
c.setImageResource(R.drawable.diamondsq);
} else if (rank == 13 && suit == 'd') {
c.setImageResource(R.drawable.diamondsk);
} else if (rank == 14 && suit == 'd') {
c.setImageResource(R.drawable.diamondsa);
}
else if (rank == 2 && suit == 'h') {
c.setImageResource(R.drawable.hearts2);
} else if (rank == 3 && suit == 'h') {
c.setImageResource(R.drawable.hearts3);
} else if (rank == 4 && suit == 'h') {
c.setImageResource(R.drawable.hearts4);
} else if (rank == 5 && suit == 'h') {
c.setImageResource(R.drawable.hearts5);
} else if (rank == 6 && suit == 'h') {
c.setImageResource(R.drawable.hearts6);
} else if (rank == 7 && suit == 'h') {
c.setImageResource(R.drawable.hearts7);
} else if (rank == 8 && suit == 'h') {
c.setImageResource(R.drawable.hearts8);
} else if (rank == 9 && suit == 'h') {
c.setImageResource(R.drawable.hearts9);
} else if (rank == 10 && suit == 'h') {
c.setImageResource(R.drawable.hearts10);
} else if (rank == 11 && suit == 'h') {
c.setImageResource(R.drawable.heartsj);
} else if (rank == 12 && suit == 'h') {
c.setImageResource(R.drawable.heartsq);
} else if (rank == 13 && suit == 'h') {
c.setImageResource(R.drawable.heartsk);
} else if (rank == 14 && suit == 'h') {
c.setImageResource(R.drawable.heartsa);
}
else if (rank == 2 && suit == 's') {
c.setImageResource(R.drawable.spades2);
} else if (rank == 3 && suit == 's') {
c.setImageResource(R.drawable.spades3);
} else if (rank == 4 && suit == 's') {
c.setImageResource(R.drawable.spades4);
} else if (rank == 5 && suit == 's') {
c.setImageResource(R.drawable.spades5);
} else if (rank == 6 && suit == 's') {
c.setImageResource(R.drawable.spades6);
} else if (rank == 7 && suit == 's') {
c.setImageResource(R.drawable.spades7);
} else if (rank == 8 && suit == 's') {
c.setImageResource(R.drawable.spades8);
} else if (rank == 9 && suit == 's') {
c.setImageResource(R.drawable.spades9);
} else if (rank == 10 && suit == 's') {
c.setImageResource(R.drawable.spades10);
} else if (rank == 11 && suit == 's') {
c.setImageResource(R.drawable.spadesj);
} else if (rank == 12 && suit == 's') {
c.setImageResource(R.drawable.spadesq);
} else if (rank == 13 && suit == 's') {
c.setImageResource(R.drawable.spadesk);
} else if (rank == 14 && suit == 's') {
c.setImageResource(R.drawable.spadesa);
}
}
}
if( obj instanceof BitmapDrawable)
{
Bitmap bmp = obj.getBitmap();
bmp.Recycle();
}
Bitmap CleanupCode(ImageView imgView) {
Drawable obj = imgView.getDrawable();
if( obj instanceof BitmapDrawable) {
Bitmap bmp = obj.getBitmap(); bmp.Recycle(); return bmp;
}
return null;
}
////
Bitmap bmp = CleanupCode(c);
c.setImageResource(R.drawable.clubs3);
if(null != bmp) {
bmp.Recycle();
bmp = null;
}