重新创建主题更改活动

时间:2015-04-27 11:56:01

标签: android android-intent android-activity android-lifecycle

我有什么

我有一个主要活动和一个活动设置。用户可以从主活动移动到设置。在设置活动中,用户可以为应用选择主题。现在我有一个应用程序的主要活动。

当用户选择主题时,我已完成并重新启动该活动以立即反映更改。

但是当用户按下后退按钮时,他将被带到主要活动。

问题

调用onResume()方法而不是onCreate()。因此setTheme()上的onCreate()方法也不会被调用。所以这里没有反映主题变化。那么我应该怎样做才能在theme中进行main activity更改。

我基本上需要确保在主题更改发生时始终调用onCreate()的{​​{1}}。

2 个答案:

答案 0 :(得分:0)

<{1>}在onResume()方法中调用recreate() recreate link

@Override
protected void onResume() {
// TODO Auto-generated method stub
    ...........
    recreate();
}

答案 1 :(得分:0)

尝试使用boolean

public class MainActivity extends Activity {
    public boolean toBeRecreated;

    @Override
    public void onResume() {
        if (toBeRecreated) { recreate(); }
    }
}

当然,您需要在用户更改主题时设置MainActivity.toBeRecreated = true