Utilizzo di AsyncTask per la connessione di networking Android

Ho delle difficoltà ad utilizzare AsyncTask perché non l'ho mai incontrato prima e non ho idea di ciò che sto facendo con esso.

Fondamentalmente sto ottenendo una forza vicino perché sto cercando di eseguire la connessione su una class principale. Potrebbe forse qualcuno aiutarmi con l'aggiunta di AsyncTask nel codice:

  • database sqlite in lingua persiana
  • Android: Tutorial sulla creazione della visualizzazione personalizzata
  • Come registro più utenti in Autenticazione Firebase per Android contemporaneamente?
  • Cordova + Ionic framework - Come modificare in modo sicuro il nome del pacchetto?
  • Come creare un emulatore per una risoluzione specifica dei dispositivi (HTC Cha-Cha)?
  • ANdroid - Esegui il file APK dopo la modifica con apktool ottiene l'errore:
  •  package com.smarte.smartipcontrol; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class IPControl extends Activity { private Socket socket; private String serverIpAddress; private static final int REDIRECTED_SERVERPORT = 32; public PrintWriter out; public BufferedReader in ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the message from the intent Intent intent = getIntent(); serverIpAddress = intent.getStringExtra(IPEntry.ACTUALSMARTIP); createConnection(); } public void getModel(View view) { try { out.println("[m\r\n"); //System.out.print("root\r\n"); while (! in .ready()); String textStatus = readBuffer(); } catch (IOException e) {} } public void createConnection() { try { InetAddress serverAddr = InetAddress.getByName(serverIpAddress); socket = new Socket(serverAddr, REDIRECTED_SERVERPORT); } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } try { out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); while (! in .ready()); readBuffer(); out.println("root\r\n"); //System.out.print("root\r\n"); while (! in .ready()); readBuffer(); out.println("root\r\n"); //System.out.print("root\r\n"); while (! in .ready()); readBuffer(); } catch (IOException e) {} //R.id.textStatus } private String readBuffer() throws IOException { String msg = ""; while ( in .ready()) { msg = msg + (char) in .read(); } //System.out.print(msg); if (msg.indexOf("SNX_COM> ") != -1) return msg.substring(0, msg.indexOf("SNX_COM> ")); else return msg; } } 

  • java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
  • Rileva il browser in-app (WebView) con PHP / Javascript
  • Up Navigation (freccia indietro della barra di azione) non funziona per i frammenti
  • Come modificare il formato dell'image da JPEG a PNG in android?
  • Impostare il colore del text del nome del mese di visualizzazione del calendario
  • Android: È necessario utilizzare onSizeChanged per View.getWidth / Height () nell'attività di estensione della class
  • 3 Solutions collect form web for “Utilizzo di AsyncTask per la connessione di networking Android”

    Solo un rapido esempio di come sembra una migtht:

     public class IPControl extends Activity { private ProgressDialog pd = null; private String data = null; private Socket socket; private String serverIpAddress; private static final int REDIRECTED_SERVERPORT = 32; public PrintWriter out; public BufferedReader in ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try{ this.pd = ProgressDialog.show(this, "Loading..", "Please Wait...", true, false); new AsyncAction().execute(); }catch (Exception e) { e.printStackTrace(); } } private class AsyncAction extends AsyncTask<String, Void, String> { protected Void doInBackground(String... args) { try { InetAddress serverAddr = InetAddress.getByName(serverIpAddress); socket = new Socket(serverAddr, REDIRECTED_SERVERPORT); } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } try { out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); while (! in.ready()); readBuffer(); out.println("root\r\n"); //System.out.print("root\r\n"); while (! in .ready()); readBuffer(); out.println("root\r\n"); //System.out.print("root\r\n"); while (! in .ready()); String msg = ""; while (in.ready()) { msg = msg + (char) in .read(); } } catch (IOException e) {} return null;//returns what you want to pass to the onPostExecute() } protected void onPostExecute(String result) { //resultis the data returned from doInbackground IPControl.this.data = result; if (IPControl.this.pd != null) { IPControl.this.pd.dismiss(); } } } 

    Passare attraverso questo semplice tutorial per get una buona base su ciò che un'AsyncTask è e come usarla:

    https://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/

    Quindi provare a modificare il codice per utilizzare le attività di async. Se hai problemi, torna qui 🙂

    Controllando la documentazione qui ..

    È necessario mettere la parte di connessione di creazione nel doInBackground .. quindi nella onPostExecute fare tutto ciò che si desidera aggiornare la ui.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.