Ich bin neu bei Android. Ich habe zu viel Zeit damit verbracht, dieses Problem ohne Erfolg zu lösen.Zugriff auf Variablen aus Async Aufgabe
So habe ich Service Serv.java
.
public class Serv extends Service {
private String a = "aa";
private String b = "bb";
private String c = "100";
//called by some class.
public void setcc(String s) {
c=s;//c="cc"
}
//Using alarm manager to start the service.
//I call function callMe from OnStart.
void callMe(Context context){
//which calls an async task
new VAsyncTask().execute("");
}
private class VerifyCPIAsyncTask extends AsyncTask<String, Void, Void> {
protected void onPreExecute() {
}
protected Void doInBackground(String... urls) {
//I am able to access a and b.(aa and bb)
//but not c.(It still shows 100 and not cc)
}
........
}
Aber wenn ich den gleichen Service laufen wieder zeigt es korrekten Wert für c (cc) .Es ist Problem, wenn ich zum ersten Mal bin erreichbar.
EDIT- Der Fluss funktioniert gut, wenn ich privaten String c zu privaten statischen String c. Und ich habe Logs in meine onCreate und onStartCommand.They nicht den neuesten Wert der Variablen c.so gibt es keine Verwendung übergeben (neueste) Variable c zu Preexecute oder sogar einen Konstruktor in der aysnctask (weil ich immer noch die alter Wert der Variablen c).
Bitte helfen. Danke.
Warum können Sie mit der 'Preexecute' Methode in der' Asynctask' nicht die Parameter einstellen, die Sie jemals verwenden möchten? – jgm
Ohne den Prozess ein bisschen mehr zu kennen und zu verstehen, wie Sie alles nutzen, was ich annehmen kann, ist dies eine Race Condition oder etwas. – zgc7009
Hi könnt ihr euch das bitte ansehen [link] (https://stackoverflow.com/questions/36689841/cannot-access-values-first-time) –