我正在编写一个具有自动播放功能的应用程序,基本上就像一本故事书。我为每个活动(页面)设置了一个媒体播放器onCompletionListener
,这样当叙述完成时,它就会开始下一个活动(页面)。有一个选项可以关闭自动播放(因此您可以按照自己的节奏阅读)...但是将其关闭会导致活动——当前页面——“记住”上一个onCompletionListener
呼叫(因为后退按钮用于导航回上一个活动)。随后的活动(页面)工作正常......因为启动的逻辑检查onCompletionListener
阻止它被执行。
我还尝试将该逻辑检查移至onStart()
[而不是onCreate
],因为切换自动播放的菜单会占据全屏并导致上一个活动(页面)执行onStop()
。虽然这个设置阻止了onCompletionListener
再次执行......它仍然没有“取消”前一个onCompletionListener
. 注意:仅当活动(页面)以autoplay=on
.
我还曾短暂尝试super.recreate()
过该特定活动,以尝试“重新启动”所有内容(希望包括onCompletionListener
. 然而,结果并不漂亮(活动被屏蔽并且从未重新初始化)。
我没有包含任何代码,因为(对我而言)这更像是一个程序问题。1. 可以onCompletionListener
“取消”。如果是这样,怎么做?2. 如果不是,(因为我对 java/android 比较陌生)重新创建方法是否可以接受/有益于“重置”整个活动(及其onCompletionListener
内部)?
我的目标是 API 11 及更高版本。任何想法/建设性的批评将不胜感激。