我有一个变量叫jsonString
,它在我的按钮的OnClickListener
事件中声明。在Runnable run()内部类中的变量访问()hock方法
但是,我有一个长时间运行的进程,它从返回jsonString的web服务获取信息。
我无法将jsonString声明为final,因为makeRequest
函数将为其分配新值。
而我需要外部的jsonString,因为我需要将它传递给运行方法之外的另一个函数。
mBtnRegister.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/* Register with web service */
final String jsonString;
try {
new Thread(new Runnable() {
@Override
public void run() {
/* ACCESS TO VARIABLE WITHIN INNER CLASS */
jsonString = snapClient.makeRequest(inputStreamKeystore,
keystorePassword,
cnn_url,
verifyEmail.createJSONRequest());
Log.d(TAG, "Response Code returned: " + jsonString);
}
}).start();
} catch (IOException e) {
Log.wtf(TAG, e.getMessage());
}
verifyEmail.createJSONResponse(jsonString);
Toast.makeText(getActivity(),
"Webservice Response: " + verifyEmail.getErrCode() + " " + verifyEmail.getErrDesc(),
Toast.LENGTH_LONG).show();
}
});
非常感谢您的任何建议,
如何使jsonString成为一个全局变量。 –