ProgressDialog während TCP socket offen

  • 1 Antworten
  • Letztes Antwortdatum
M

mitch_HD2

Fortgeschrittenes Mitglied
1
Abend zusammen,
ich habe ein kleines Problem mit meinem ProcessDialog...

Code:
public static class Send extends AsyncTask<Void, Void, Void> {
		
	
	
		@Override
		protected Void doInBackground(Void... arg0) {
			Socket socket = null;
			
			try {
				socket = new Socket(Connection.ipInt, Connection.Port);
				socket.setSoTimeout(3000);
			
				/*****SEND BYTE TO SERVER******/
				DataOutputStream out = new DataOutputStream(new DataOutputStream(socket.getOutputStream()));
				System.out.println("Send Byte");
				out.write(SendByte);
				out.flush();
				Log.d("Udp sende", Arrays.toString(SendByte));
				
				/*****READ BYTE FROM SERVER*****/
				BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
	            String test = in.readLine().toString();
	            System.out.println("Read Byte");
	            System.out.println(test);
	            in.close();

	           
	            
			}catch (UnknownHostException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				bufRecStr = "UnknownHostException: " + e.toString();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				bufRecStr = "IOException: " + e.toString();
			}finally{
				if(socket != null){
					try {
						socket.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
			return null;
		}

		@Override
		protected void onPostExecute(Void result) {
			System.out.println("gesendet");
			super.onPostExecute(result);
		}
		
	}

das ist mein Asynctask womit ich ein TCP Socket aufbaue ein bytearray sende, und wieder etwas empfange...
nun will ich ein Processdialog während des ganzen vorgangs bekommen.

Code:
ringProgressDialog = ProgressDialog.show(MainActivity.this, "Please wait ...", "Downloading Image ...", true);

da es sich hierbei aber nicht um die MainActitivty handelt sondern um eine zweite class bekomme Fehler bei (MainActivity.this), mit getActivity geht es auch nicht...

was muss ich ändern? und wie löse ich es am besten? wo setze ich mein processdialog ein? und wann beende ich es am besten?
 
Das ist jetzt ins blaue gesprochen, könntest du den Construktor deines asynctasks nicht so verändern, dass du deine MainActivity als context mitgibst. Dann kannst du den Progress Dialog in der onPreExecute() methode anzeigen und in der onPostExecute() wieder schließen.
 

Ähnliche Themen

tarek857
Antworten
4
Aufrufe
449
tarek857
tarek857
Zurück
Oben Unten