2016-12-22 3 views
1

Ich habe Gedanken über die folgenden Design-Machen anonyme Klasse statisch - durch statische Methode

public void cntDownPossesion() { 

    ((Activity) context).runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 

       int poss = Integer.parseInt(possesionTextView.getText().toString()); 
       poss--; 
       possesionTextView.setText("" + poss); 
       iCount++; 
      } 

} 

Seit einem neuen Runnable() jeden Rahmen erzeugt wird. Ich benutze eine SurfaceView und es verwendet einen Arbeitsfaden. Die textview wird auf dem Hauptfaden erstellt, so dass ich die Updates von "poss" zurück zum Hauptfaden bringen muss, da der Arbeitfaden es nicht berühren kann.

Ich denke, das kann hohe Speicherverbrauch erzeugen und weiß nicht, ob der GC hält?

Ich kam mit der Idee, das Runnable-Objekt statisch zu machen, aber da es eine innere Klasse ist, ist dies nicht möglich. Was ist mit dem Kontext, das ist die Methode cntDownPossesion statisch - wenn die Methode statisch ist, ist nicht die Innerclass selbst statische dann ???

+0

Nichts kann statisch, wenn 'possesionTextView' und' iCount' sind Instanzvariablen –

Antwort

2

Sie können das Runnable zu einer Mitgliedsvariablen extrahieren, wenn Sie wirklich der Meinung sind, dass es sich um einen Leistungsengpass handelt.

private Context context; 
private TextView possesionTextView; 
private int iCount; 

private final Runnable r = new Runnable() { 
    @Override 
    public void run() { 
     int poss = -1 + Integer.parseInt(possesionTextView.getText().toString()); 
     possesionTextView.setText(String.valueOf(poss)); 
     iCount++; 
    } 
}; 

public void cntDownPossesion() { 
    ((Activity) context).runOnUiThread(r); 
} 
+0

gute Lösung gemacht werden, aber denken Sie, eine Performance-Engpass in meinem Code ist? _Ich könnte den Text auf einem Canvas zeichnen, aber die Verwendung von XML-Layout ist viel einfacher_ – java

+1

Ich weiß nicht - Ich habe Ihren Code nicht. Es liegt an Ihnen, die Speichernutzung oder die UI-Verzögerung zu beobachten –

Verwandte Themen