私はアンドロイドプロジェクトでstackmob APIを使用していますが、正常終了するとコールバックが呼び出されないようです。私が正しく動作するために必要な機能は、ログイン機能です。私はのonClickハンドラから呼び出され、次の機能があります:関数が呼び出されるとStackmobログインコールバックが成功しなかった場合
private void logIn()
{
Map params = new HashMap();
EditText e = (EditText) findViewById(R.id.userNameEditText);
params.put("username", e.getText().toString());
e = (EditText) findViewById(R.id.passwordEditText);
params.put("password", e.getText().toString());
m_stackmob.login(params, new StackMobCallback()
{
@Override
public void success(String response)//<--never called
{
Log.d(TAG, response);//<--Never see this in the log
setLoggedIn();//<--UploadActivity member function never fires
}
@Override
public void failure(StackMobException e)
{
Log.d(TAG, e.getMessage());
Toast.makeText(TimeTrackerUploadActivity.this,
e.getMessage(),
Toast.LENGTH_LONG).show();
}
});
}
、私はstackmobにログインしていますが、データを投稿することができますが、コールバックの成功関数が呼び出されることはありません。なぜこれが、またはそれを修正する方法を知っていますか?私は何か間違っているのですか?アクティビティの状態を設定するためにログインが成功するかどうかを知る必要があります。ありがとうございました。
私はこれに対する答えを見つけられませんでしたが、回避策が見つかりました。コールバックの仕事ほどクリーンではありませんが、仕事は終わりです。ここにあります。
private void logIn()
{
Map params = new HashMap();
EditText e = (EditText) findViewById(R.id.userNameEditText);
params.put("username", e.getText().toString());
e = (EditText) findViewById(R.id.passwordEditText);
params.put("password", e.getText().toString());
StackMobRequestSendResult result = m_stackmob.login(params, new StackMobCallback()
{
@Override
public void success(String response)
{}
@Override
public void failure(StackMobException e)
{
Log.d(TAG, e.getMessage());
Toast.makeText(TimeTrackerUploadActivity.this,
e.getMessage(),
Toast.LENGTH_LONG).show();
}
});
RequestSendStatus status = result.getStatus();
if(status.compareTo(RequestSendStatus.SENT) == 0)
{
Log.d(TAG, "Login success detected!!!");
setLoggedIn();
}
else
{
//failure callback works and can handle this
}
}
よろしく、 ジョセフ
@Taylor新しいタグを追加してくれてありがとう。 – jdwieber
私は上記の問題の問題を回避するための作業を追加しました。私はコールバックを間違って使用しているのか、それともあまり期待しているのかを知ることにはまだ興味があります。 – jdwieber