ich einen Thread nenne, die die GCM-ID in eine öffentliche Variable gibt genannt gcmRegIDAufruf Thema in der Mitte der Funktion
die Probleme ist, dass der Faden nur aufgerufen, wenn die Funktion
beendet ist frage ich mich, wenn es einen Weg gibt, kann ich den Wert des gcmRegID in der Mitte der Funktion erhalten
werde ich mehr erklären Code
ich möchte den Wert von gcmRegID in CheckGCMID bekommen, aber was ich bekommen ist „“
String gcmRegID = "";
public void onClick(View view) {
String CheckGCMID;
GetGCM();
CheckGCMID = gcmRegID; // <-- This is always return empty string
}
private void GetGCM() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
GCMHelper gcmRegistrationHelper = new GCMHelper(
getApplicationContext());
gcmRegID = gcmRegistrationHelper.GCMRegister("123456");
// gcmRegID value is "KHDKJDIUHDHDKDK"
} catch (Exception bug) {
bug.printStackTrace();
}
}
});
thread.start();
}
versuchen, die ID in 'gcmID' zu speichern, wenn Sie die Methode' getGcm nennen() '' wie gcmID = getGcm(); ' –
Nehmen Sie eine AsyncTask wie in http : //stackoverflow.com/a/31686447 und tun Sie alles, was Sie tun müssen, wenn Sie das Ergebnis aus der 'onPostExecute'-Methode erhalten. – zapl
Wie zapl sagte, dies ist asynchrone, Verwenden Sie keinen Thread, wenn Sie synchron bleiben wollen. Und Sie sollten über camelCase lesen. – AxelH