2013-02-23 165 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