我需要使用onStop()
将资源释放为位图和bgms,并且我面临onStop()
执行时间过长的问题。因此,在最糟糕的情况下,用户将退出活动并重新输入活动(不到1秒钟就可以了),因此活动运行onCreate()
然后继续调用onStop()
(其中我想它是在用户退出时调用的。)
很明显,onCreate()
正在加载资源,但onStop()
调用正在释放它们,导致空指针异常。
任何可能的解决方案?
答案 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