2016-05-02 20 views
0

我有一個單例類,其中一個方法接受源活動類名稱和目標活動類名稱。活動從類外完成的監聽器

Public void handleActivityTransition(Activity srcActivity, String destActivity){ 

srcActivity.startActivity(new intent (srcActivity 

,destActivity));

}

此方法基本上啓動目標活動。但是,當目標活動被銷燬/完成時(例如後退按鈕或其他操作),此方法/類需要執行操作。

我正在解決它的方式,因爲我正在覆蓋目標活動的on destroy方法並調用單例類的方法。但是我覺得這是不好的方法。是否有聽衆或其他方式知道目標活動何時從上面的單例類中被銷燬。

感謝

+0

已經在這裏回答了http://stackoverflow.com/questions/14785806/android-how-to-make-an-activity-return-results-to-the-activity-which-calls-it – user3167086

回答

0

好像所有你需要做的就是通過startActivityForResult() 啓動意圖,然後通過你正在努力實現相結合的基礎上,requestCode。

然後最後根據您之前創建的請求代碼,您可以在源Activity的onActivityResult()中執行您想要執行的任何任務。

我真的沒有在這裏看到使用Singleton。可以從源自身創建任何組合。但是如果你想要付出一些努力,你也可以在單例中實現它。儘管在源代碼活動本身中執行它會容易得多。

+0

謝謝你。問題在於,在源代碼上調用了inactivityresult,我希望單身人員是做這項工作的人。是的,我知道這不是最好的事情,但我有在這種情況下使用單身人士的理由 – Snake

+0

那麼每次都有一個虛擬的活動做這項工作。沒有佈局或任何東西的虛擬活動。它會解決問題。而不是一個單身人士使用虛擬活動作爲一個單身人士,你總是保留一個副本。或者更好的片段。沒有UI的片段。從那裏你可以輕鬆做到。 –

+0

你實際上可以泄漏一項活動給你。將活動泄漏,使其始終保持活躍狀態​​,然後在該活動中對單身人士做任何你想做的事情。 –