在onCreate()之后立即调用onStop()

时间:2013-07-20 19:42:55

标签: android android-activity

我需要使用onStop()将资源释放为位图和bgms,并且我面临onStop()执行时间过长的问题。因此,在最糟糕的情况下,用户将退出活动并重新输入活动(不到1秒钟就可以了),因此活动运行onCreate()然后继续调用onStop()(其中我想它是在用户退出时调用的。)

很明显,onCreate()正在加载资源,但onStop()调用正在释放它们,导致空指针异常。

任何可能的解决方案?

3 个答案:

答案 0 :(得分:0)

这是hackish,但是你可以计算出释放资源通常需要多长时间并在onCreate()中设置一个等待onStop()肯定完成的计时器,然后重新加载任何空资源。几乎可以肯定有一个更好的解决方案,但如果没有别的,那么你可以做到这一点。

答案 1 :(得分:0)

试过这个解决方案,但这不是我计划这样做的方式。

由于我已经收到的错误是NullPointerException,因为已发送的onStop()来电正在释放每个加载onCreate()的资源,我只是添加{{1}阻止捕获try-catch并调用函数来重新加载资源

答案 2 :(得分:0)

如果您使用onStart()回调方法创建onStop()中发布的所有资源,则问题将得到解决。

您得到NullPointerException,因为您认为onCreate ()已被调用,但事实并非如此 OnStop ()可以在Activity未被销毁的情况下调用onStart (),在这种情况下调用onCreate()而不是onStart(),因此,如果资源是在NullPointerException中创建的,这将阻止{{1}} 见Android documentation