Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android应用程序中的Stackoverflow错误_Android_Stack Overflow - Fatal编程技术网

android应用程序中的Stackoverflow错误

android应用程序中的Stackoverflow错误,android,stack-overflow,Android,Stack Overflow,在我的应用程序中,我只是在两个活动之间运行,即A和B。根据用户,他从A切换到B,然后从B切换到A,再从A切换到B,然后从B切换到A,然后继续 这两个活动都具有列表视图。每次用户进出时,我都会添加一些存储在数据库中的数据。这些数据是从rss提要中检索的,有时它们的数量非常多。由于这一点,我很少得到堆栈溢出错误 首先,我按照相对布局设计布局,并将列表视图放置在相对布局中。我在这里得到了一个答案,这个错误可能是由于相对布局,所以我把所有的布局都改成了线性布局,但错误仍然在发生 如何克服这个问题当启动一

在我的应用程序中,我只是在两个活动之间运行,即A和B。根据用户,他从A切换到B,然后从B切换到A,再从A切换到B,然后从B切换到A,然后继续

这两个活动都具有列表视图。每次用户进出时,我都会添加一些存储在数据库中的数据。这些数据是从rss提要中检索的,有时它们的数量非常多。由于这一点,我很少得到堆栈溢出错误

首先,我按照相对布局设计布局,并将列表视图放置在相对布局中。我在这里得到了一个答案,这个错误可能是由于相对布局,所以我把所有的布局都改成了线性布局,但错误仍然在发生


如何克服这个问题

当启动一个新活动时,它会被推到当前任务堆栈的顶部。如下图所示

                                                                 |->  B - StackOverflow
    | |                 | |               |A|                   |A|
    | |                 |B|               |B|                   |B|
    |A|                 |A|               |A|                   |A|
    ```                 ```               ```                   ```
Before launching   After launching    After launching       Trying to launch
 activity B         activity B         activity A            activity B
因此,最终会耗尽任务堆栈上的空间,从而导致stackoverflow错误


考虑使用一些函数来清除堆栈历史记录。根据您提供的数据,我认为flag应该很有用-
flag\u ACTIVITY\u NO\u HISTORY
。但您需要确认这是否是您想要的行为,只需检查其余的活动标志,并选择适合您的应用程序的正确标志。

启动新活动时,它会被推到当前任务堆栈的顶部。如下图所示

                                                                 |->  B - StackOverflow
    | |                 | |               |A|                   |A|
    | |                 |B|               |B|                   |B|
    |A|                 |A|               |A|                   |A|
    ```                 ```               ```                   ```
Before launching   After launching    After launching       Trying to launch
 activity B         activity B         activity A            activity B
因此,最终会耗尽任务堆栈上的空间,从而导致stackoverflow错误


考虑使用一些函数来清除堆栈历史记录。根据您提供的数据,我认为flag应该很有用-
flag\u ACTIVITY\u NO\u HISTORY
。但是,您需要确认这是否是您想要的行为,只需检查其余的活动标志,并选择适合您的应用程序的正确标志。

应该与知道哪个部分引发stackoverflow相关。也许在这里发布你的异常日志。此外,源代码的相关部分对于给您一些真正的提示也是必要的。如果您使用两个活动,您应该将它们设置为单个实例,或者在再次启动(A)时完成旧的(A)。应该了解哪个部分引发stackoverflow。也许在这里发布你的异常日志。此外,源代码的相关部分对于给您一些真正的提示也是必要的。如果您使用两个活动,您应该将它们设置为单个实例,或者在再次启动(A)时完成旧的(A)。