Ich habe v8 in meinem Android-Projekt über J2V8 eingebettet. Das funktioniert gut, aber es gibt Situationen, in denen das Skript hängt (wahrscheinlich aufgrund einer Art von Endlosschleife, nehme ich an). Der Code ist viel zu kompliziert, um es zu debuggen und es kann immer eine Situation geben, in der ein Skript verrückt läuft.Kann ich die Ausführung von JavaScript in J2V8 beenden?
Um sicher zu gehen, dass kein Zombie-Thread herumhängt und die Batterie entleert, möchte ich ein Timeout definieren und v8 beenden, wenn das Skript noch nicht zurückgegeben wurde. Natürlich führe ich das Skript unter AsyncTask
oder IntentService
aus und niemals im Hauptthread. Auf diese Weise schützt sich Android nicht selbst und zeigt eine "Anwendung reagiert nicht" (ANR). Der Hintergrund Thread läuft und läuft und läuft ...
Wie v8 auf saubere Weise zu töten?
Ja, das ist die richtige Methode. Und im Gegensatz zu anderen Methoden in J2V8 kann dies von jedem Thread aufgerufen werden. – irbull