android 프로젝트에서 stackmob API를 사용하고 있으며 성공적 완료시 콜백이 호출되지 않은 것으로 보입니다. 제대로 작동하는 데 필요한 기능은 로그인 기능입니다. 나는 온 클릭 핸들러에서 호출되어 다음과 같은 기능을 가지고 : 함수가 호출 될 때성공시 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
}
}
감사합니다, 조셉
귀하의 해결 방법은 정말 작동하지
@ 테일러 저에게 새로운 태그를 추가해 주셔서 감사합니다. – jdwieber
위의 질문에 대한 문제 해결을 위해 추가되었습니다. 나는 여전히 콜백을 잘못 사용하고 있는지 또는 너무 많이 기대하는지 알고 싶어합니다. – jdwieber