2014-03-01 34 views
0

我一直在研究一個應用程序,並且它已經很長時間了。我有一個問題,Android,貪婪的資源,喜歡殺死應用程序,當我把它放在後臺。這非常糟糕,因爲該應用程序實際上是想成爲一名智能助理,並且每次需要重新初始化時都意味着它在實際工作環境中不會很有幫助。Android:防止長時間初始化的應用程序被擊斃

我研究了防止人工智能大腦重新初始化的方法,但是,沒有一種方法效果很好。保存它的大腦實例將不起作用,因爲她需要操作的POS模型不能被序列化。而且使用服務也不起作用,因爲如果我想通過服務與活動進行交流,我必須將其與活動一起重新初始化(如果有解決方法,請糾正我,我只注意到大多數教程都提供服務(onCreate方法中的.start())

有沒有辦法解決這個問題?我只需要保留POS模型。儘管只有幾兆字節,但由於某種原因,它們需要一段時間才能加載。

請注意,這是爲了防止數據被殺死。沒有後臺進程需要運行。

回答

0

您需要設置一個通知來告訴Android不要釋放您的資源。

看到這個問題:How can we prevent a Service from being killed by OS?。雖然問題本身並不直接適用,但答案與這個問題有很多重疊。

如果你想在後臺運行某些東西,你可能應該使用一個服務,儘管只有當你在前臺有佈局時才應該運行活動。您可以將所需的對象存儲在服務中,當(重新)啓動需要它的活動時根據需要抓取它,並在活動失去焦點時更新它。

編輯:我不小心粘貼了錯誤的鏈接。現在糾正了。

而且,看看這個Android的資源,如果你還沒有:http://developer.android.com/training/basics/activity-lifecycle/recreating.html

+0

該線程是不是真的與我的問題,還是根本回答任何我所提出的問題,但是謝謝你的好意。 – Brayden

+0

我不小心粘貼了錯誤的鏈接。現在糾正了。 – indivisible

相關問題