android – 如何重新创建以前的活动?

我有一个主要活动(让我们称之为A)和第二个活动(我们称之为B),用于更改应用程序的语言.关键是,当我单击按钮更改语言时,我也调用了recreate();和B改变它的语言.直到这里它还可以.问题出现在我回到主要活动(A)并且它没有更新语言因为它没有被重新创建时,所以,有没有办法从B重新创建A以更新A?

我使用此代码翻译应用程序(eng版本示例):

public void btnIngles_onClick(View v)
{
    Locale locale = new Locale("en");
    Locale.setDefault(locale);

    Configuration config = new Configuration();
    config.locale = locale;
    this.getApplicationContext().getResources().updateConfiguration(config, null);
    recreate();
}

解决方法:

1)活动B改变一些全局设置,例如可通过SharedPreferences访问

2)在活动A中:

@Override
protected void onResume() {
    super.onResume();
    if(didLanguageChange)
      recreate();
}

问题解决了.当活动B进入前台时,活动A将调用onResume(),因为它已切换到暂停状态.

上一篇:第四十二篇: 快速排序为什么快?


下一篇:算法从入门到精通(二):认识O(NlogN)的排序