从另一个活动重新创建/重新启动活动

Sal*_*nna 5 android recreate android-activity

我看过这个问题,但没有得到好的答案,我的情况有点不同.我有2个活动A和B.从活动AI启动活动B但活动A必须保持打开,现在我登录活动BI后在共享首选项中保存一些数据,我需要活动A中的布局根据共享首选项值进行更改,因此登录后,活动A必须重新创建以应用更改,但仍应位于活动B之后.

所以我的问题是可以从Activity B重新创建活动A.

miv*_*va2 2

我不知道“活动 A 必须保持打开状态”到底是什么意思,所以您必须弄清楚该部分或给出更详细的解释。您的意思是活动 B 覆盖活动 A 吗?我假设是这样。

我建议您在 Activity A 中使用 3 个片段。一个片段用于初始布局,另一个片段用于新布局。然后另一个片段代替 Activity B,我将其称为 FragmentB。

FragmentB创建Callback内部接口。

public interface Callbacks {
    void onLoggedIn();
}
Run Code Online (Sandbox Code Playgroud)

然后让Activity A实现这个回调

public class ActivityA extends Activity implements FragmentB.Callbacks {

//rest of the activity...

 @Override
    public void onLoggedIn() {

getFragmentManager().beginTransaction()
                            .replace(R.id.container, new SecondFragment())
                            .commit();
}
}
Run Code Online (Sandbox Code Playgroud)

显然,您可以为ActivityAFragmentBCallbacks和选择任何您喜欢onLOggedIn的名称SecondFragment。其中SecondFragment登录后包含布局的片段名称FragmentB