Eine Option könnte sein, dass Ihr Objekt die GuavaService Schnittstelle implementiert. Es ist speziell für Dienste gedacht, die gestartet werden sollen und dann irgendwann heruntergefahren werden. Insbesondere möchten Sie möglicherweise Ihre Klasse erweitern AbstractExecutionThreadService. Dadurch wird sichergestellt, dass der Service für Sie in einem eigenen Thread ausgeführt wird. Dann brauchen Sie nur start()
den Service und stop()
den Service, wenn Sie es brauchen zu stoppen. Ihre Methode kann überprüfen, isRunning()
, ob es fortgesetzt werden soll.
public class ClassA extends AbstractExecutionThreadService {
protected void run() {
while (isRunning()) {
...
}
}
// Can also start shutdown in another method
private void method() {
if (condition == true) {
triggerShutdown();
return;
}
}
}
Alles, was gesagt, ich bin genau nicht ganz klar, was Sie tun wollen, und wie Sie tatsächlich diese Klasse (oder Klassen), so ist es schwer zu sagen ist, wie dies für Ihre Situation funktionieren wird.
', ohne das andere zu töten classes' bitte erklären, es –
Aus Gründen der Pedanterie, Klassen haben keinen Lebenszyklus in diesem Zusammenhang; Objekte tun, und ja, es ist möglich, Objekte zu töten (Sie müssen dies tatsächlich GC überlassen) oder die Threads, in denen die Objekte verwendet werden, um die weitere Ausführung von Code zu verhindern. –