Meine Android-Anwendung hat zwei Aktivitäten, wenn ich die Schaltfläche auf der Hauptaktivität zu drücken, um seine 2. Aktivität und lesen Sie die seriellen Bluetooth-Daten Werte mit folgender Thread-Funktion. Ich möchte den Thread stoppen, wenn ich die Zurück-Taste drücke. oder wenn Sie die On-Click-Taste der 2. Aktivität drücken. Bitte hilf mir, dass ich neu bei Android bin.Ich möchte meinen Thread stoppen, wenn Sie die Zurück-Taste drücken und auf klicken klicken (Android Studio)
mein Thread-Funktion
void beginListenForData()
{
final Handler handler = new Handler();
stopThread = false;
buffer = new byte[1024];
Thread thread = new Thread(new Runnable()
{
public void run()
{
while(!Thread.currentThread().isInterrupted() && !stopThread)
{
try
{
int byteCount = inputStream1.available();
if(byteCount > 0)
{
byte[] rawBytes = new byte[byteCount];
inputStream1.read(rawBytes);
final String string=new String(rawBytes,"UTF-8");
handler.post(new Runnable() {
public void run()
{
recDataString.append(string); //keep appending to string until ~
//keep appending to string until ~
int endOfLineIndex = recDataString.indexOf("~"); // determine the end-of-line
if (endOfLineIndex > 0) { // make sure there data before ~
// String dataInPrint = string.substring(0, endOfLineIndex); // extract string
if (recDataString.charAt(0) == '#') //if it starts with # we know it is what we are looking for
{
String sensor0 = recDataString.substring(1, 4); //get sensor value from string between indices 1-5
String sensor1 = recDataString.substring(5,9); //same again...
stringToFloat1 = Float.parseFloat(sensor0);
stringToFloat2 = Float.parseFloat(sensor1);
floatToInt1 = (int)stringToFloat1 ;
floatToInt2 = (int)stringToFloat2;
if ((floatToInt1 != lastFloatToInt1) ||(floatToInt2 != lastFloatToInt2)){
Log.d("hell=" , "ohhhhhhhhhhhhhhhh");
movieMethod();
}
lastFloatToInt1 = floatToInt1 ;
lastFloatToInt2 = floatToInt2 ;
}
recDataString.delete(0, recDataString.length()); //clear all string data
}
}
});
}
}
catch (IOException ex)
{
stopThread = true;
}
}
}
});
thread.start();
}
Aufschalten 'OnBackButtonPressed()' im Inneren, dass der Faden nicht mehr, wenn Thread –