Anonyme thread-Klasse, die sich in Java

Dies ist ein Java-syntax Frage, aber nur für einige Hintergrundinformationen.

Mit android habe ich eine kleine app, die ging wirklich sehr langsam und oft abgestürzt ist, weil, wenn eine Schaltfläche angeklickt wurde, wird die onClick () - Methode geändert Grafiken für die verschiedenen Tasten. Es war wirklich plump und langsam, und ich fand heraus, nach einer Suche im Netz, dass das problem ist sehr verbreitet, und beim Wechsel zu viele Bilder in der onClick () - Methode, Ihr bestes, um Sie in einem separaten thread. Und irgendeine person gab den code, dies zu tun.

new Thread(new Runnable() {
                public void run() {
                    quest.post(new Runnable() {
                        public void run() {
                            correct = nextQ();

                        }
                      });

                    }

                  }).start();

Den nextQ () - Methode und die "quest" TextView sind von mir. Es ist nicht wirklich relevant für meine Frage, was Sie tun, aber nextQ gibt es eine Datenbank, Suche und updates, Bilder, und es läuft außerhalb der thread ist wirklich sehr langsam und crashy.
Jetzt habe ich kopiert und eingefügt, diesen code in mein code und es läuft wunderbar. Ein glückliches Ende. Aber ich habe nicht das Gefühl bequem mit code die ich nicht verstehe. Und ich weiß nicht, Java sehr gut. ALSO habe ich recherchiert wie ich konnte, anonyme innere Klassen, aber ich bin immer noch ratlos durch den code.

So der anonyme thread-Klasse erweitert, und wie es ist-argument verwendet eine anonyme Klasse implementieren von runnable, in denen das "Fleisch" der code platziert wird..
Fragen:
1)Warum sollte ich dies tun? Ich kann verstehen, mit thread ODER runnable, aber warum zusammen?
2)Wie funktioniert das? Ich ging zurück zu den Grundlagen-thread und runnable, aber ich sehe nicht, wie Sie mit Ihnen zusammen auf diese Weise.

InformationsquelleAutor | 2010-11-05
Schreibe einen Kommentar