zu drücken Ich habe einen Client, der versucht, eine Verbindung zu einem Server herzustellen. Nach 5 Sekunden gibt es eine Zeitüberschreitung, wenn die Verbindung fehlgeschlagen ist. Ich wundere mich, ein Popup-Fenster ohne Verbindungszeichen und "Versuchen Sie es erneut zu verbinden" -Taste zu öffnen. Das Popup wird im Thread erstellt. Wenn die Verbindung fehlgeschlagen ist, wird der Thread beendet. Aus diesem Grund habe ich die Click-Methode in meine Hauptaktivität eingefügt. Warum funktioniert es nicht?Versuchen, Button von PopupWindow in Thread
Code, der Thread läuft nach der Verbindung fehlschlägt:
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
LayoutInflater inflater = (LayoutInflater)
((Activity) context).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final PopupWindow noConnection = new PopupWindow(
inflater.inflate(R.layout.popup_no_connection, null, false),
800,
800,
true);
noConnection.setAnimationStyle(R.style.AnimationFade);
noConnection.showAtLocation(((Activity) context).findViewById(R.id.entrance_layout), Gravity.CENTER, 0, 0);
globalClass.getErrorHandler().setNoConnectionWithServer(noConnection);
}
});
-Code in Haupttätigkeit:
((GlobalClass) getApplicationContext()).initiateClass();
globalClass = ((GlobalClass)getApplicationContext());
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View popupWindowView = inflater.inflate(R.layout.popup_no_connection, null, false);
Button refreshConnection = (Button) popupWindowView.findViewById(R.id.btn_reconnect);
refreshConnection.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (globalClass.getErrorHandler().getNoConnectionWithServer() != null) {
Communication communication = new Communication(globalClass, entrance.this);
globalClass.setCommunication(communication);
Thread t = new Thread(communication);
t.start();
globalClass.getErrorHandler().getNoConnectionWithServer().dismiss();
}
}
});
Dank der Mensch du mir sehr geholfen :) – Netanel