我的主要活动是通过startActivityForResults调用第二个活动。然后,我的第二个活动通过startActivityForResults调用了第三个活动,但是在此过程中,我的第二个活动finishes。现在,第三个活动将是finish,但是将需要通过setResult发送回结果代码。我的第一个活动使用了onActivityResult方法,但是从不接收任何东西或从未被调用。

我在三项活动之间无法解决此问题。解决这个问题的最简单方法是什么?

最佳答案

最简单的方法可能是使用Singleton类。

public class ResultHolder {
  private String result; // Whichever result code you need to persist
  public String getResult() {return result;}
  public void setResult(String result) {this.result = result;}

  private static final ResultHolder holder = new ResultHolder();
  public static ResultHolder getInstance() {return holder;}
}


在发布结果代码的活动中:

ResultHolder.getInstance.setResult(whateverResultCode);


在收到结果代码的活动中:

String resultCode = ResultHolder.getInstance.getResult();


希望这可以帮助。

10-08 17:24