所以,我既是Java的新手,也是创建Android应用程序的新手,但不是编程新手。我已经阅读了大多数developer.android.com网站,但我找不到这个:
我想确保某个活动同时运行不止一次。所以我们有一个像这样的任务:
活动A)TabActivity,启动
活动B)点击后打开的ListView
活动C)是媒体播放器对象的接口
现在,每当有人在C中按下后退按钮时(这很可能是因为他们要收听1小时流式传输的mp3),然后按下另一个列表项,而不是返回C,C第二次打开,正在播放两个流。当然,我只想要运行一个C实例,我希望第二次单击列表项以将C带回到前面。这对通知意图也很有用。
我一直在搞乱标志(特别是FLAG_ACTIVITY_NEW_TASK,FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT),但到目前为止还没有成功。
如果有人可以帮助我,我可以专注于我的下一个挑战 - 让它成为真正的饲料读者:P
提前致谢,
答案 0 :(得分:20)
您需要在清单中将自己的行为标记为"singleTask"
或"singleInstance"
。我不记得2之间的确切差异,但要么应该做你想要的。 SingleInstance
只是做了与堆栈不同的事情。
示例:
<activity android:name="MainActivity" android:launchMode="singleInstance"></activity>
您可以使用onNewIntent()
答案 1 :(得分:5)
我知道了!
对于那些阅读这个问题并希望了解摘要的人:我错误地认为有一个以上的活动正在运行,但是在运行时出现了更多的MediaPlayer实例。我让我的媒体播放器成为了一个类成员,现在我正在从onStart()事件中控制它。
我正在使用SharedPreferences检查流是否需要重置和更改源,或者继续运行并只显示界面。
感谢您的所有反应。真的帮了我。
答案 2 :(得分:-7)
只需编辑.xml中的包名称
EX:com.org.MainActivity 改成 .org.MainActivity 强>
它适用于我.....好