Konvertierung zwischen Nachricht und String in android?
Ich versuche, die monitor-Netzwerk-Konnektivität auf android. Dies kann nicht durchgeführt werden auf dem Haupt-thread, also die Erhebung der Daten erfolgt auf einem separaten thread ich spawn - und ich bin lernen, mit der Handler-Klasse, um Bericht zu erstatten, um die UI-jede Sekunde. Hier die entsprechenden Schnipsel aus meinem code...
public class MainActivity extends Activity {
private TextView textView;
private int linkSpeed;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Message message = msg;
textView.setText(message);
setContentView(textView);
}
};
/** Called when the activity is created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
textView = new TextView(this);
textView.setTextSize(25);
Thread thread = new Thread() {
public void run() {
for (;;) {
try {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
while (true)
{
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo != null) {
linkSpeed = wifiInfo.getLinkSpeed(); //measured using WifiInfo.LINK_SPEED_UNITS
}
else {
linkSpeed = -1;
}
}
String message = "linkSpeed = " + linkSpeed;
handler.handleMessage(message);
Thread.sleep(1000);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
};
thread.start();
}
Das problem ist, die Meldung bekomme ich aus dem neuen thread, ich spawn ist vom Typ "String", aber ich kann nicht scheinen, um eine überlastung der handleMessage-Methode der Handler-Klasse zu nehmen Zeichenfolgen anstelle von Nachrichten. Ich glaube nicht, dass es eine direkte Konvertierung zwischen Strings und Nachrichten, als die einzige Methode in der Klasse " Nachricht, die einen String zurückgibt, ist die Methode toString (), aber es gibt eine Beschreibung, sondern als das, was die Nachricht enthält. Ich bin auch verwirrt, wie kann ich konvertieren eine Zeichenfolge in eine Nachricht - und ich fühle mich wie ich bin ein sehr Kreisverkehr nähern. Jede Hilfe wäre sehr geschätzt werden!
InformationsquelleAutor Yuen Hsi | 2013-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie nicht haben, um eine überlastung oder versuchen zu tun, alle coversions zwischen
String
undMessage
.Was Sie tun sollten, ist, dass der String in ein Objekt vom Typ der Nachricht und übermittelt Sie an das
Handler
. Dann inhandleMessage()
extrahieren Sie die Zeichenkette aus der Nachricht.Etwas wie dieses:
Und in
handleMessage()
:Aber neben diesen, hat das Programm ein Problem: Sie werden nicht in der Lage, senden Sie die Daten an die Prozedur übergeben, weil dieser Teil des Codes ist nicht erreichbar:
Auch, vergessen Sie nicht zu stoppen die
Thread
irgendwann, sonst wird es weiter laufen, auch nachdem die app geschlossen ist.InformationsquelleAutor Andy Res
Können Sie fügen Objekte - wie Ihr String in Ihre Message-Objekten mit einem Bündel.
Erstellt habe ich dieses Beispiel:
InformationsquelleAutor Xaver Kapeller