如何在不重新启动整个应用程序的情况下应用主题?如果使用 startActivity(getIntent()); finish();
进行操作,则 Activity 会退出并且不会重新启动。是否可以简单地重新启动 / 重新创建 Activity 以应用主题?
如何在不重新启动整个应用程序的情况下应用主题?如果使用 startActivity(getIntent()); finish();
进行操作,则 Activity 会退出并且不会重新启动。是否可以简单地重新启动 / 重新创建 Activity 以应用主题?
顺序不正确。
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);
之前可以设置主题。您需要销毁活动并重新创建它,然后立即在 onCreate() 中调用 setTheme(THEME);
。
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);