Sir Bitte helfen Sie mir, einen Thread, der bei einem Klick auf die Schaltfläche beginnt und endet den Thread mit einem weiteren Klick auf die Schaltfläche hinzufügen. Zwischendurch habe ich einen Sound, bis der Thread aufhört.Ein Thread Start auf einer Schaltfläche klicken und beenden Sie den Thread mit einer anderen Schaltfläche klicken
1
A
Antwort
2
Sie können diesen einfachen Code versuchen:
final volatile boolean toExit = false;
final Thread t = new Thread(new Runnable() {
@Override
public void run() {
while(!toExit){
// Your code
Thread.sleep(100);
}
}
});
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
t.start();
}
});
findViewById(R.id.button2).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
toExit = true;
}
});
Der Faden wird gestoppt, nachdem button2 auf while(!toExit)
geklickt und ausführen.
0
Threadstoppmethode ist veraltet. Die beste Lösung wird eine boolesche Variable in der run-Methode haben.
Ihr Thema:
public class MyThread implements Runnable {
private static final Logger LOGGER = LoggerFactory.getLogger(IndexProcessor.class);
private volatile boolean running = true;
public void terminate() {
running = false;
}
@Override
public void run() {
while (running) {
try {
//Your code that needs to be run multiple times
LOGGER.debug("Processing");
} catch (InterruptedException e) {
LOGGER.error("Exception", e);
running = false;
}
}
}
}
In Ihrer Aktivität:
MyThread t=new Thread();
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
t.start();
}
});
findViewById(R.id.button2).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
t.terminate();
}
});
0
Einsatz unter
-Code
public class SomeBackgroundProcess implements Runnable {
Thread backgroundThread;
public void start() {
if(backgroundThread == null) {
backgroundThread = new Thread(this);
backgroundThread.start();
}
}
public void stop() {
if(backgroundThread != null) {
backgroundThread.interrupt();
}
}
public void run() {
try {
Log.i("Thread starting.");
while(!backgroundThread.interrupted()) {
doSomething();
}
Log.i("Thread stopping.");
} catch(InterruptedException ex) {
// important you respond to the InterruptedException and stop processing
// when its thrown! Notice this is outside the while loop.
Log.i("Thread shutting down as it was requested to stop.");
} finally {
backgroundThread = null;
}
}
Hope this helfen Ihnen
Verwandte Themen
- 1. PyQt - Anzeigen einer MessageBox beim Klicken auf eine Schaltfläche "Beenden"
- 2. Navigieren Sie zu einer anderen Seite auf die Schaltfläche klicken
- 3. jQuery.draggable() - Klicken Sie auf Schaltfläche klicken
- 4. Beenden Sie die vorherigen Aktivitäten auf die Schaltfläche klicken Android
- 5. Etikettentext sofort auf einer UI-Schaltfläche ändern Klicken Sie auf
- 6. ANDROID: Start neue Aktivitäten aus Schaltfläche klicken
- 7. Klicken Sie auf Javascript Schaltfläche mit Python
- 8. Simulieren Schaltfläche klicken auf Anmeldeseite
- 9. Entfernen eines Steckplatzes auf einer untergeordneten Schaltfläche Klicken Sie auf
- 10. Klicken Sie auf Schaltfläche in UICollectionView
- 11. Ereignis mit der Schaltfläche klicken
- 12. Stoppen Sie Ping.SendAsync per Schaltfläche klicken WPF
- 13. während einer Schaltfläche klicken und entfernen, indem Sie auf Schaltfläche in Laravel 4
- 14. Ein Klicken Wenn die Schaltfläche deaktiviert ist Klicken Sie auf Schaltfläche wird nicht ausgelöst
- 15. mechanisieren Python klicken Sie auf eine Schaltfläche
- 16. Klicken Sie auf eine href-Schaltfläche mit Selen und Python?
- 17. Klicken Sie zum Simulieren einer JavaScript-Schaltfläche mit Scrapy
- 18. CakePHP-Eine Ansicht zu einer anderen Ansicht Schaltfläche klicken Funktion
- 19. Load Teilansicht auf Schaltfläche klicken
- 20. AJAX View Tabellendaten Schaltfläche Klicken Sie auf
- 21. Initiieren Sie Google Anmelden auf Schaltfläche klicken
- 22. Fügen Sie benutzerdefinierte UITableViewCell auf Schaltfläche klicken
- 23. Espresso - klicken Sie auf Textansicht (Schaltfläche)
- 24. VBA klicken Sie auf eine bestimmte Schaltfläche
- 25. Aufruf einer Funktion von einem anderen Ort auf einer Schaltfläche klicken Ereignis
- 26. Löschen ein Textfeld auf die Schaltfläche klicken
- 27. Klicken Sie auf eine Schaltfläche pro Sekunde
- 28. Wie programmgesteuert auf eine Schaltfläche auf einer ASP.NET-Webseite klicken?
- 29. Führen Sie ein Python-Skript auf Schaltfläche klicken
- 30. Schaltfläche simulieren klicken