我正在编写一个具有多个活动的应用程序。活动 A 调用活动 B,不期待结果。然后,如果按下按钮 B 将使用 Activity C 启动ActivityForResult。当 Activity C 完成时,它会生成一个包含它需要的所有额外内容的意图并完成。问题是,当它调用 this.finish() 或只是 finish() 时,它会将我一直带回到活动 A。活动 B 中的 onActivityResult 不会被调用。怎么了?
活动 A:开始活动 B
Intent in = new Intent(ccstart.this,mainmenu.class);
in.putExtra("uid",loginresponse);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("usr",text_user.getText().toString());
// Commit the edits!
editor.commit();
startActivity(in);
活动 B:为结果启动活动 C
Intent intent = new Intent(mainmenu.this,filebrowser.class);
startActivityForResult(intent,0);
活动 C:退货声明
Intent result = new Intent();
result.putExtra("fname", file.getAbsolutePath());
this.setResult(Activity.RESULT_OK, result);
finish();
活动B:根据活动c的结果...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// If the request went well (OK) and the request was PICK_CONTACT_REQUEST
if (resultCode == Activity.RESULT_OK && requestCode==0) { //upload a file
final String fname = data.getExtras().getString("fname");
final SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); //Load settings
final String uid = settings.getString("uid", "");
new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
doFileUpload(fname, uid);
}
}).start();
}
}
那有什么问题?它发生在一个不返回结果的活动中,所以它不仅仅是这个。
谢谢!