应用程序崩溃后多次重新启动活动

时间:2015-05-16 13:49:22

标签: java android multithreading

我有这种我无法理解的奇怪情况。

我在android studio上开发了一个应用程序,在第一个活动上我启动了第二个活动,在第二个活动上,我创建了一个SurfaceView子类,它扩展了surfaceView和实现Runnable并在run()内的画布上绘图,当我退出时线程我调用onRestart()来再次启动画布线程。

到目前为止一切都很好,我打开线程,在循环中绘制一些图像,退出线程循环,重新启动。

问题是,重启20次后,应用程序崩溃,没有逻辑原因。 您认为问题是什么?如何检查并修复它?

这个函数是surfaceView 类(活动的)中的线程工作

@Override
public void run() {
    while (!_susspendThread) {
        // draw images
    }
    onRestart();
}

此功能位于活动类

protected void onRestart() {
    // make some changes, nothing critical to the question
    // examp. count++;
    surface_view.StartThreadWork();
}

我必须说的另一件事虽然我不相信它与问题相关的是onCreate我读了一些内部文件。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你有内存泄漏,这可能来自很多方面。一个好的开始,就是使用Activity的onDestroy()方法来清理你生成的所有资源(比如你在onCreate方法中创建的内部文件)。

此外,还有大量用于跟踪内存使用情况的工具,在AndroidStudio(AS)中,“Android”视图中有一个“内存”选项卡。此外,您可以运行“监视”工具(可从命令行或AS中获取)获取有关您正在泄漏的资源类型的详细信息。