ログイン後にLoginActivityが結果を返すようにしました。ただし、onActivityResult()
メソッドで常に 0 を取得しています。原因が掴めません。これが私のコードです:
MainActivity.java:
@Override
protected void onResume() {
super.onResume();
Intent intent = new Intent(this, LoginActivity.class);
startActivityForResult(intent, R.id.login);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == R.id.login || resultCode==RESULT_OK)
synchronizeContacts(R.id.contactList);
}
}
LoginActivity.java:
private TaskCompleteListener<CsResult> taskCompleteListener = new TaskCompleteListener<CsResult>(){
@Override
public void onComplete(int requestId, CsResult result) {
if (result==null || result.return_code!=0){
String message = !TextUtils.isEmpty(result.return_message) ? result.return_message : getString(R.string.msg_invalid_user);
JAppUtils.showMsg(LoginActivity.this, message, MsgType.ERROR);
return;
}
Log.d(TAG, "***** I can see this is called ******");
setResult(RESULT_OK);
finish();
}
};
public void loginClick(View view){
LoginTask task = new LoginTask(this);
task.setTaskCompleteListener(taskCompleteListener);
task.setLoginUser("user_id", "password");
task.execute(ServerConfig.URL);
}
デバッグまたはログを見ると、taskCompleteListener.onComplete()
メソッドが正しくMainActivity
呼び出され、callonActivitResult()
メソッドに戻ります。RequestCode
正しいですresultCode
が常にActivity.RESULT_CANCEL
です。
何をもう一度確認できますか?