2013-02-23 118 views
1

由於「內存不足」問題,是否可以通過重新啓動應用程序重置HEAP?Android重置堆通過重新啓動應用程序?

下面是我從「stackoverflow」找到的代碼來重新啓動應用程序。但是從Eclipse DDMS中,Heap沒有重置。

Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

謝謝...

+0

爲什麼不釋放你分配的對象並運行gc? – 2013-02-23 18:08:48

+0

其實,這是谷歌地圖v1,根本不能釋放它。我已經嘗試了「https://code.google.com/p/android/issues/detail?id=2181」提到的方式,但是從DDMS中,即使「MapActivty」是「onDestroy」,堆仍然沒有發佈。到目前爲止,我打算終止進程並重新啓動它。 – andrewwang1TW 2013-02-24 09:56:58

回答

0

由於「內存不足」的問題,是可以重置通過重新啓動應用程序的堆?

最終,Android會終止你的進程,在它移動到後臺一段時間後。新流程將從新堆開始。

以下是我從「stackoverflow」找到的代碼重新啓動應用程序。但是從Eclipse DDMS中,Heap沒有重置。

那是因爲您仍在使用相同的過程。

+0

看,那麼是否有可能殺死進程(int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid);)然後重新啓動它。謝謝。 – andrewwang1TW 2013-02-24 09:52:19

+0

好的,終於我知道該怎麼做了.... http://stackoverflow.com/questions/2681499/android-how-to-auto-restart-application-after-its-been-force-closed – andrewwang1TW 2013-02-24 10:58:50