Java 从登录活动中的回调更新主活动ui

Java 从登录活动中的回调更新主活动ui,java,android,android-activity,Java,Android,Android Activity,我在主活动a和登录活动B中有一个导航抽屉。活动B有一个OnLogin回调,在该回调中,我从主活动可以访问的单例更新全局用户信息。请注意,此OnLogin回调是在线程中调用的 现在我想更新主活动导航抽屉标题ui(例如用户名和用户图标)。我在主活动A中使用startActivityForResult从登录活动B中获取一个标志,指示某些内容已更改,然后在活动结果中更新UI 我面临的问题是,当activityB完成时(由activityB中的OnBackPressed触发),不需要调用OnLogin回调

我在主活动
a
和登录活动
B
中有一个导航抽屉。活动
B
有一个
OnLogin回调
,在该回调中,我从主活动可以访问的单例更新全局用户信息。请注意,此
OnLogin回调
是在线程中调用的

现在我想更新主活动导航抽屉标题ui(例如用户名和用户图标)。我在主活动
A
中使用
startActivityForResult
从登录活动
B
中获取一个标志,指示某些内容已更改,然后在活动结果
中更新UI

我面临的问题是,当activity
B
完成时(由activity
B
中的
OnBackPressed
触发),不需要调用
OnLogin
回调。因此,
onActivityResult
无需获取在
UserInfo
中所做的更改。我的问题是,在这种情况下,更新UI的正确方法是什么

我最后做了什么

UserInfo.java

class UserInfo extends Observable {
  private String value_;
  public void setValue(String value)
  {
    value_ = value;
    setChanged();
  }
}
MainActivity.java

 MainActivity extends AppCompatActivity implements Observer {
     public void onCreate(Bundle savedInstanceState)
     {
        // other onCreate stuff
        Singleton.getInstance().getUserInfo().addObserver(this);
        // UserInfo initialization
        ...
        // UI initialization
        Singleton.getInstance().getUserInfo().notifyObservers();
     }

     public void update(Observable observable, Object data)
     {
        if (observable instanceof UserInfo)
        {
           //update ui
        }
     }
 }
     OnLogin(String value)
     {
       UserInfo userInfo = Singleton.getInstance().getUserInfo();
       userInfo.setValue(value);
       userInfo.notifyObserver();
     }
LoginActivity.java

 MainActivity extends AppCompatActivity implements Observer {
     public void onCreate(Bundle savedInstanceState)
     {
        // other onCreate stuff
        Singleton.getInstance().getUserInfo().addObserver(this);
        // UserInfo initialization
        ...
        // UI initialization
        Singleton.getInstance().getUserInfo().notifyObservers();
     }

     public void update(Observable observable, Object data)
     {
        if (observable instanceof UserInfo)
        {
           //update ui
        }
     }
 }
     OnLogin(String value)
     {
       UserInfo userInfo = Singleton.getInstance().getUserInfo();
       userInfo.setValue(value);
       userInfo.notifyObserver();
     }

我想用敏锐的眼光去观察你要找的东西。