6

如何在不重新启动整个应用程序的情况下应用主题?如果我startActivity(getIntent()); finish();在活动退出并且不重新启动的情况下这样做。是否可以简单地重新启动/重新创建 Activity 以应用主题?

4

2 回答 2

16

它的顺序不正确。

    finish();
    intent = new Intent(this, <your_activity>.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

这是正确的顺序。

主题可以在super.onCreate(savedInstanceState);被调用之前设置。您需要销毁活动并再次创建它并立即调用setTheme(THEME);onCreate()

于 2012-03-10T12:26:40.963 回答
1
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
于 2013-12-03T07:54:29.390 回答