2013-01-15 162 views
7

Activity在應用程序運行時更改系統字體時正在重新啓動。更改字體重新啓動活動

有什麼辦法可以避免重新啓動我的Activity? 我用基本的「Hello World」應用程序測試過它。

我使用的是Android 4.1作爲目標

PS:我一直在使用android:configChanges嘗試,但有沒有字體更改有關的任何標誌。

+0

究竟是什麼錯誤顯示 – Janmejoy

+0

沒有錯誤來。當我回到我的應用程序而不是'onResume()'時,它只是調用我的活動的'onCreate()'方法。 – sachy

+0

@sachy你有沒有任何解決方案呢! – CoDe

回答

1

U應該使用android:configChanges =「fontScale」。 但你會然後需要處理該配置通過重寫onConfigurationChanged改變自己() 可以參考this

+1

正如我所提到的我已經試過這個。但fontScale適用於字體大小而不是類型 – sachy

-1

你必須自己處理配置更改。

android:configChanges="fontScale" works only for size of the font 
-1

我曾嘗試以下,它應該爲你工作,但它會導致活動,則用戶必須啓動的活動時字體樣式已更改爲摧毀再次

1)有一個全球性的HashSet到從應用存儲時的applcation開始把上下文串在此的HashSet

2)上下文字符串暴露的方法

isContextExits(contextStr) { return hashset.contains(contextStr); } 

3)通過在bundle中傳遞字符串的內容來調用ur活動。

onCreate(Bundle savedInstanceState) 
mContextStr = savedInstanceState.getExtra("CONTEXT_STR"); 

// context has changed then finish the activity 
if (!this.getApplicationContext().isContextStr(mContextStr)) 
    finish(); 

希望這有助於!