2012-02-25 12 views
6

लागू करने के लिए गतिविधि को पुनः लोड कैसे करें मैं पूरे ऐप को पुनरारंभ किए बिना थीम कैसे लागू कर सकता हूं? अगर मैं इसे startActivity(getIntent()); finish(); के साथ करता हूं तो गतिविधि छोड़ती है और पुनरारंभ नहीं होती है। थीम को लागू करने के लिए गतिविधि को फिर से शुरू/पुनः बनाना संभव है?थीम प्रोग्रामेटिक सेट।

उत्तर

15

यह गलत क्रम में है।

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); कॉल करने के लिए

+1

बहुत बढ़िया जरूरत है। काम करता है! – Leandros

+0

क्या आपके पास इस मुद्दे पर कोई जवाब है? http://stackoverflow.com/questions/9686912/actionbarsherlock-restart-to-apply-theme-triggers-wrong-lifecycle-methods – Leandros

+0

महान काम किया गया – Unknown

1
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
संबंधित मुद्दे