我已經創建了一個Login活動,它使用另一個類 - LoginService,它是一個用於網絡通信的AsyncTask。如何將結果從asynctask返回給android中的活動?
public void onClick(View view) {
if (editTextPassword.getText().toString() != null & editTextUsername.getText().toString() != null){
new LoginService(editTextUsername.getText().toString(), editTextPassword.getText().toString()).execute();
if(loginSuccess!=false){
//Used to move to the Cases Activity
Intent casesActivity = new Intent(getApplicationContext(), CasesActivity.class);
startActivity(casesActivity);
}else{
Toast.makeText(getApplicationContext(),"Incorrect Details", Toast.LENGTH_LONG).show();
}
}
else{
//Display Toaster for error
Toast.makeText(getApplicationContext(),"Please enter your details", Toast.LENGTH_LONG).show();
}
}
在LoginService完成執行之前,活動已經通過Intent變量移動到另一個活動。我不懂爲什麼。 LoginService的想法是驗證用戶的憑證。如果它返回true,那麼它可以切換到其他活動。
好的,thx的信息。但是我在意圖代碼行中遇到了「getApplicationContext()」錯誤。如何從asyncTask類創建上下文? – mokko211 2013-02-12 23:43:05
嗯,我通常把'AsyncTask's作爲內部類來保持良好的關聯。你可以做的是做一個'LoginService'的'.Context()'函數,然後在'execute()'前調用它,並將它作爲成員變量存儲。如果你願意,我可以編輯我的帖子以瞭解更多細節。 – Eric 2013-02-12 23:52:54
是的。我以前從未使用過或理解過上下文的概念。這將非常感激。 – mokko211 2013-02-12 23:54:49