2011-09-25 75 views
0

正如標題內重新啓動一個活動,我看過一些文章。我寫這個是爲了這樣做。
一個tabactivity

public class TabManager { 
    private static Context tabAct; 
    private static final String TAG = "TabManager"; 

    public static void setTabActivity(Context t) { 
     Log.i(TAG, "setTabActivity"); 
     tabAct = t; 
    } 

    public static void restart(String tid, Class act) { 
     Log.i(TAG, "restart " + tid); 
     LocalActivityManager manager = ((ActivityGroup) tabAct).getLocalActivityManager(); 
     manager.destroyActivity(tid, true); 
     manager.startActivity(tid, new Intent(tabAct, act)); 
    } 
} 

然而,當我做

TabManager.restart("tid4", MyActivity.class); 

活性被破壞了,但它並沒有啓動。 有人可以給我一些建議嗎? 謝謝!

+0

重量誤差做到了在logcat的表現? – Ronnie

+0

當我做了上面的來源,它沒有拋出任何異常。屏幕沒有改變任何東西。但是,當我點擊其他標籤,然後單擊回來。它拋出了NullPointerException。 – cht

+0

當你打電話重新啓動時,檢查logcat,因爲你在那裏調用'startactivity'。所以它會給出一些錯誤(如果不是例外),說明爲什麼它沒有啓動活動。 – Ronnie

回答

0

看看在LocalActivityManager的文檔。它說如果符合一些條件,調用startActivity將重新開始活動。所以不需要致電destroyActivity

+0

做了這項工作..? – Ronnie