我有一个非常间歇性的问题我无法解决,而且我不确定如何进一步解决问题。
我有一个片段,在事务完成时通过replace加载。大多数时候,一切都很好。但是间歇性地,片段没有完成加载,它只显示一个空白屏幕。我说它发生的时间不到1%,但这是一个非常糟糕的地方。
我已经在生命周期事件之前/之后放置了标签,并且它进入onStart()但它从不调用onResume [我在super.onResume()之前/之后放置标签]发生了,都没有记录。当它工作时,它正确记录onResume调用。
@Override
public void onStart() {
Log.i(CLASS_NAME, "Entering on onStart");
super.onStart();
Log.i(CLASS_NAME, "Exiting on onStart");
}
@Override
public void onResume() {
Log.i(CLASS_NAME, "Entering on onResume");
super.onResume();
Log.i(CLASS_NAME, "Exiting on onResume");
}
当这恰好表明出现任何问题时,日志中没有任何内容,但是,如果我试图离开屏幕,它会抛出一个例外,它无法保存它。'国家。
" java.lang.IllegalStateException:失败保存状态:活动TransactionCompleteFragment {2b12a67c}已清除索引:-1"
据我所知,它试图保存状态,但片段没有正确,所以它会爆炸。但这是片段首先没有加载的结果。
什么可能导致onResume不被调用?此外,它没有抛出一个没有被称为异常的super.onResume,所以它没有被调用而只是显示一个空白屏幕显然可以吗?
我能做的最好的事情就是在日志发生后检查日志,并希望一些额外的日志记录能够提供一些见解,但我对于记录什么或在哪里查看提出了想法?