我在检查某事的活动中有一个功能。我在该函数中调用一个 web 服务(在 doInbackground 方法中),并根据结果我开始另一个活动。
该函数在活动的 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”返回结果的方法,以便在执行下一条指令之前等待我的处理