OK ich blick´s immer noch nicht
hier jetzt mal ein gekürzter Auszug aus meinem Programm vielleicht wird´s euch und mir dann etwas klarer
so hatte ich mir das gedacht.....
Als erstes meine Activity:
public class StartActivity extends AppCompatActivity {
//Deklarieren der View Elemente von der StartActivity
Button ......
//Erzeugen eines neuen Objektes der Klasse "Ping"
Ping ping;
//Variablendeklaration
private String IP_adresse = "";
.........
//onCreate wird bei Appstart automatisch ausgeführt
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start); //"activity_start" als aktuelles Layout festlegen
//Initialisieren der View Elemente über ihre ID
btn_connect = ..........
}
//-------------------------Connect Button onClick-----------------------------------------------------------
public void connect(View v) {
//TODO: IP überprüfen und in Variable"IP_adresse" übernehmen
startePing();
}
//Starten des AsynkTasks
private void startePing() {
ping = new Ping(IP_adresse);
ping.setStatus(true);
ping.execute();
}
}//ende Activity
hier meine Java Klass "Ping" mit dem AsynkTask (neue Klasse/neues Fenster)
public class Ping extends AsyncTask<String ,Boolean ,String>{
private String IP_adresse; //Übergebene IP Adresse aus StartActivity (Pingziel)
private boolean status; //Variable zum starten/stoppen des Ping's
private boolean teststatus;
//-----------------Konstruktor----------------------------------------------------------------------
public Ping(String IP_adresse) {
this.IP_adresse = IP_adresse;
}
//-------------------Setter und Getter--------------------------------------------------------------
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
//--------------------------------------------------------------------------------------------------
@Override
protected String doInBackground(String... params) {
while(status) {
.....Ping ausführen
.....Ping auswerten (gibt am ende true oder false aus in "teststatus")
publishProgress(teststatus);
}
return null;
}
@Override
protected void onProgressUpdate(Boolean... values) {
//Was hier rein muss , bzw wie es ab hier weiter geht ist die frage
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
}
}//Ende Ping klasse
so war in etwa mein Gedankengang und bis zu dem Punkt funktioniert auch alles nur wie bekomme ich nun meinen "teststatus" in die Activity und frage den da daueraft ab, bzw wie funktioniert es das ich in der Activity auf die Veränderung vom "teststatus" reagieren kann?
also quasi if(teststatus_changed) --> zeige anderes Layout .... oder tue sonst irgendwas
die onPostExecute geht ja nur wenn die doInBackground fertig ist als in den return läuft (wenn ich das richtig verstanden hab).
In meinem Fall geschieht das eigentlich nur wenn ich die App beende oder manuell eingreife (im normalen Betrieb soll das wenn einmal gestartet immer laufen)
Für änderungs-/verbesserungsvorschläge bin ich jederzeit offen
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.