我正在写一个自动播放功能的应用程序,基本上就像一本故事书。我为每个活动(页面)设置了一个媒体播放器onCompletionListener
,以便在叙述完成时开始下一个活动(页面)。有打开自动播放关闭(这样你就可以按照自己的节奏阅读)的选项...但关闭它导致活动--the当前page--“记住”以前onCompletionListener
调用(如后退按钮使用导航回到先前的活动)。随后的活动(页面)工作正常......因为逻辑检查启动onCompletionListener
使它不能执行。有没有办法取消onCompletionListener?
我也试着移动该逻辑检查onStart()
[代替onCreate
]为其中自动播放翻转占用整个屏幕,使得之前的活动(页)执行onStop()
菜单。虽然此设置使onCompletionListener
不再被执行......但它仍不会“取消”以前的onCompletionListener
。注意:这只是一个活动(页面)以autoplay=on
开始时的问题。
我也简单地尝试过super.recreate()
这个特殊的活动,试图“重启”所有的东西(希望包括onCompletionListener
)。然而,结果并不漂亮(活动消失,从不重新初始化)。
我不包括任何代码(我)这更是一个程序性问题。 1.可以将onCompletionListener
“取消”。如果是这样,怎么样? 2.如果没有,(因为我是比较新的爪哇/机器人)是重新创建方法可接受的/有益的“复位”整个活动(以及onCompletionListener
它里面)?
我针对API 11以上。任何想法/建设性的批评将不胜感激。
所以只有一个oCL为每个活动?我还没有找到这个完整的文档,但...所以我不完全理解oCL的“生命周期”,如果你愿意的话。在onDestroy之后,oCL是否被“杀死”了一个特定的活动?还是它仍然会在后台挥之不去? – user1848796
1.是的,只有一个听众。如果你设置一个新的,它将覆盖前面的内容。 2.如果听者倾听死亡的物体,它将永远不会被称为:) – Rotem
太棒了!感谢您的澄清......并为您耐心解决我的问题。在这一点上,我试图不要“承担”任何事情。 – user1848796