主题以编程方式设置。如何重新加载Activity以应用主题

6

如何在不重新启动整个应用程序的情况下应用主题?如果使用 startActivity(getIntent()); finish(); 进行操作,则 Activity 会退出并且不会重新启动。是否可以简单地重新启动 / 重新创建 Activity 以应用主题?

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); 之前可以设置主题。您需要销毁活动并重新创建它,然后立即在 onCreate() 中调用 setTheme(THEME);


你对这个问题有答案吗?http://stackoverflow.com/questions/9686912/actionbarsherlock-restart-to-apply-theme-triggers-wrong-lifecycle-methods - Leandros

1
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接