何かをチェックするアクティビティに機能があります。その関数で(doInbackgroundメソッドで)Webサービスを呼び出し、結果に応じて別のアクティビティを開始します。
その関数はアクティビティのonCreateメソッドで呼び出されますが、問題は、関数の結果を待たずに次の命令の実行が続行されることです。
コードは次のとおりです。
public class EditAccountActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_account);
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
checkConflict();
Log.i("VERIF",
"WE GO HERE WITHOUT WAITING THE RESULT");
//i don't want to go here if we start the other activity in checkConflict
...
}}}
public void checkConflict() {
final Intent intent = new Intent(this, ConflictFieldActivity.class);
new WSDataAccount() {
@Override
public void onPostExecute(final ArrayList<ArrayList<String>> result) {
if (modifiedTimeOnServer > modifiedTimeLocal
&& !conflictWithFields(fieldLocalFirstStateMap,
fieldServerMap.getAccountFieldMap(),
modifiedTimeLocal, modifiedTimeOnServer)
.isEmpty()) {
Toast.makeText(getApplicationContext(),
" EDITION CONFLICT !!!! ", Toast.LENGTH_LONG)
.show();
startActivity(intent);
}
}
}.execute(sessionName, accountId, "retrieveModifiedTime");
}}
次の命令を実行する前に私の治療を待つために、「onPostExecute」によって返された結果を処理する別の方法を知っていますか