更改singleTop活动的主题

Eri*_*ric 5 android actionbarsherlock android-actionbar

所以我的应用程序中有一个活动,当前标记为

android:launchMode="singleTop"
Run Code Online (Sandbox Code Playgroud)

...我目前在onCreateonNewIntent中都有逻辑,以确保屏幕始终显示由启动的最新Intent提供的数据.而且我希望能够根据Intent提供的数据在Holo.Light和Holo.Dark之间进行切换.

调用setTheme不起作用(请参阅以下两个链接):

第二个链接有一个解决方法,涉及创建第二个AndroidManifest.xml条目,该条目具有另一个主题并指向相关活动的空子类.这有效,但它会破坏singleTop(因为现在堆栈上有两个活动实例).

我没有想法.有人知道除了为这个活动滚动我自己的自定义ActionBar视图之外还有什么方法可以做到这一点吗?

Udi*_*nic 1

您需要使用 setTheme() 方法设置主题,然后重新加载活动。

我有一个 singleTask 活动,以及一个在 API<11 上运行的代码,因此我有以下代码来重新加载该活动:

public void reload() {
    Intent intent = getIntent();
    overridePendingTransition(0, 0);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    finish();

    overridePendingTransition(0, 0);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

我几乎刚刚完成该活动并再次调用它。我禁用任何过渡动画以使重新加载看起来即时。