我在一个Android应用程序中有一个Singleton(工作正常),其中一个函数需要在另一个线程的类变量中设置数据,但是只有在我两次运行该函数时,数据才会设置。
onCreate:
Thread thread;
Runnable runnables;
String recvData;
@Override
public void onCreate() {
super.onCreate();
singleInstance = this;
recvData = "one";
Log.v("oncreate", "singleton");
}
threaded_data_set:
public String threaded_set_data() {
runnables = new Runnable(){
@Override
public void run() {
recvData = "two";
return;
}
};
thread = new Thread(runnables);
thread.start()
Log.v("Data", recvData);
return recvData;
}
在第一次运行时,它将记录
("Data", "one")
,仅在第二次运行时,它将更改为("Data", "two")
我在这里做错了什么?
最佳答案
recvData
的默认值为:
recvData = "one";
这里没有什么错,
Log.v("Data", recvData);
只是在您的线程打印出第二条日志消息之前将其打印出来。