Bir android uygulaması için temel bir giriş ekranı uygulamaya çalışıyorum. Akış şu şekildedir:
1) Kullanıcı oturum açma bilgilerini girer ve
bildirimlerini gönderir. 2) AsyncTask
uzantısını oluşturan LoginRequest
oluşturulur ve çalıştırılır.
3) doInBackground
bazı http ateş edeceği kullanıcı kimlik
4) onPostExecute
loginResults
5) Ui iplik giriş sonuçlarını görür ve ona göre devam ayarlamak için denir elde edilmelidir doğrulamak için çağırır.AsyncTask onPostExecute,
Kök sorununa ulaşmak için kodu basitleştirdim ancak şu ana kadar hiç şansınız olmadı. Sorunu hala yeniden yorumlayan basitleştirilmiş kod. Etkinliğime İçinde
:
private void tryLogin(String email, String password)
{
this.showProgress(true);
LoginHelper loginHelper = new LoginHelper();
LoginResult result = loginHelper.tryLogin(email, password);
this.showProgress(false);
}
Bu tıklama dinleyici benim teslim düğmelerinden çağrılır.
İçinde LoginHelper:
TestClass test = new TestClass();
public LoginResult tryLogin(String mobileNumber, String password, int deviceId)
{
String loginUrl = "...";
new LoginRequest(test).execute(loginUrl);
while (test.result == null)
{
try {
Thread.sleep(1000);
}
catch (Exception e)
{
//...
}
}
return test.result;
}
Bu AsyncTask yürütmek ve sürekli olmak sonucu bekler.
LoginRequest:
public class LoginRequest extends AsyncTask<String, Void, LoginResult>
TestClass test;
public LoginRequest(TestClass test)
{
this.test = test;
}
@Override
protected LoginResult doInBackground(String... params) {
LoginResult ret = null;
ret = new LoginResult(1,"test");
return ret;
}
@Override
protected void onPostExecute(LoginResult result) {
this.test.result = result;
}
}
Ben doInBackground
ve onPostExecute
içindeki kesme noktaları ile debugger ile bu çalıştırın. doInBackground
düzgün olarak yürütür ve LoginResult
değerini döndürür, ancak onPostExecute
kesme noktası hiçbir zaman vurulmaz ve kodum LoginHelper
içinde while döngüsünde bekler.
onPostExecute() çağrılmıyorsa yürütülen sonraki deyimin hangisini bulmayı denediniz? –
Bu bağlantıya bir göz atın, size yardımcı olabilir http://nads-rosun.blogspot.in/2014/01/android-login-application-using.html – AmeeJoshi
@AlokGupta LoginHelper'ın içindeki döngü, sürekli olarak test için bekleyecektir. sonuç ayarlanması. –