gpt4 book ai didi

java - 分配 AsyncTask 返回的值

转载 作者:行者123 更新时间:2023-12-01 11:26:04 25 4
gpt4 key购买 nike

public class Login extends ActionBarActivity{
.
.
.
// I have this method to run If the login button is pressed.
public void login(View v){

// I am performing all verification and validation
// Just not showing it here
// To store the keys
String api_key_from_database;
String api_key_from_network;

//Gets the key from the database
api_key_from_database=db.getApiKey(database,email);
api_key_from_network=httpRequest.getHttpResponse(email,password);;// I am having problems with this assignment

//Compare the two keys to authenticate
if(api_key_from_database.equals(api_key_from_network)){
//Start the main activity
//This is just placeholder to start the actual activity.
startActivity(new Intent(this,MainActivity.class));
//End this login activity
finish();
}
else{
// Throw error
}
}
}

由于 getHttpResponse() 执行网络 Activity ,我无法在主线程上运行它。

在我为 getHttpResponse 方法返回的值分配 api_key_from_network 的行中,我似乎无法同时使用 Thread 进行分配>异步任务

在使用Thread时,由于变量api_key_from_network未声明为final,因此我无法访问该变量。

new Thread(){
public void run(){
}
}.start();

如果我将其声明为final,则无法修改该值。

现在使用AsyncTask,我不太确定如何返回该值。在 doPostExecution() 中,我似乎也无法分配该值。

您能帮我将该方法返回的值分配给api_key_from_network

最佳答案

您的变量api_key_from_network对于您的类(class)来说是全局的。因此,使用 AsyncTask 进行网络操作并获取数据,并在 Post Execution 中将其分配给变量。

public class get_key extends AsyncTask<String, String, String> {

ProgressDialog dialog;

@Override
protected void onPreExecute (){
//Show Dialog Here
super.onPreExecute ();
}


@Override
protected String doInBackground (String... params){

// Do Network Calling
return string;
}

@Override
protected void onPostExecute (String result){

if(dialog.isShowing()){
dialog.dismiss();
}
// put condition to check data
api_key_from_network=reuslt;
}
}

只需在要从网络获取 key 的位置运行 new get_key().execute(); 即可。

关于java - 分配 AsyncTask 返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30801102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com