私は自分のREST APIで認証されたAndroidアプリケーションのログイン部分を書き込もうとしています。これは私が現在REST APIへの非同期ログインの処理方法
LogInTaskブール関数
boolean LogInTask(String username, String password){
AuthOrNot.setCurrent(true);
Log.wtf("START", "" + AuthOrNot.getCurrent());
UserAPI.Factory.getInstance().authenticateUser("testuser", "password").enqueue(new Callback<TokenJSON>() {
@Override
public void onResponse(Call<TokenJSON> call, Response<TokenJSON> response) {
try{
String token = response.body().getToken();
Log.wtf("WORKS",""+ token);
AuthOrNot.setCurrent(false);
Log.wtf("AUTH", "" + AuthOrNot.getCurrent());
}catch (NullPointerException t){
Log.wtf("NO", "Didn't work, most likely incorrect username+password");
AuthOrNot.setCurrent(false);
t.printStackTrace();
}
}
@Override
public void onFailure(Call<TokenJSON> call, Throwable t) {
Log.wtf("FAIL",""+t.getMessage());
AuthOrNot.setCurrent(false);
}
});
Log.wtf("AUTH", "" + AuthOrNot.getCurrent());
return AuthOrNot.getCurrent();
}
私はこれは私が今ここにいる理由である、おそらくこれを行うについて行くための最良の方法ではありません知っているものです。起こっているのは、ネットワーク要求が1秒〜2秒かかることです。コードはすでに下にあります。AuthoOrNot.getCurrent()== true。これは、ユーザ名+パスワードコンボは正しいです。
は、コールバックを使用します:)
はまた、クラス定義はここで見つけることができます修正されました。 –
リスナーを作成して、onresponseの最後に発生させます。コールバックでcehckを実行して他のアクティビティに移動 – user6547359
組み込みのメソッドの1つである必要がありますか、自分で作成する必要がありますどのようなリスナーですか?また、正確に 'コールバック'はどこですか? – ethanzh