每當我需要做這種類型的事情,我使用Loader
。裝載機是爲活動設置數據的絕佳方式,但它們並不是很好理解。
您可以使用CursorLoader
,但這需要ContentProvider
,我敢打賭你不想寫這其中的一個。
我會寫一個自定義AsyncTaskLoader
子類,查詢數據庫,並返回一個Cursor
。
查看裝載機的文檔和示例應用程序,瞭解它可能對您有何幫助。
此外,不應重新啓動主要活動,您應該查看Activity
方法startActivityForResult()
,setResult()
和onActivityResult()
。然後您的TransActivity
可以「返回」到您的MainActivity
。這是一個更好的流程。
所以一旦你有一個Loader
,你MainActivity
會打電話LoaderManager.createLoader()
啓動加載器。
您可以使用MainActivity.startActivityForResult()
來調用TransActivity
。
然後,一旦您的TransActivity
已更新數據庫,它會調用setResult()
和finish()
。
這將調用MainActivity
中的onActivityResult()
覆蓋,您可以在其中調用LoaderManager.restartLoader()
加載新數據。
如果您不想使用裝載機,您可以重新查詢數據庫onActivityResult()
,因爲您知道TransActivity
已完成更新。