我正在尝试让我的应用程序只在我开始activities
时播放介绍剪辑。
但是从我的代码开始,在恢复到应用程序之前唤醒它总是播放剪辑,尽管我没有关闭应用程序。我该怎么做才能解决这个问题?
来自main:
startActivity(new Intent(this, MyIntro.class));
来自MyIntro:
public class MyIntro extends Activity implements OnCompletionListener {
int a;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.intro);
playIntro();
}
public void onConfigurationChanged(Configuration newConfig) {
setContentView(R.layout.intro);
}
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
this.finish();
}
private void playIntro(){
setContentView(R.layout.intro);
VideoView video = (VideoView) this.findViewById(R.id.VideoView01);
Uri uri = Uri.parse("android.resource://real.app/" + R.raw.intro);
video.setVideoURI(uri);
video.requestFocus();
video.setOnCompletionListener(this);
video.start();
}
}
答案 0 :(得分:0)
您在主Activity
- 您调用的那个
startActivity(new Intent(this, MyIntro.class))
我认为它是onResume()
并且由于这个原因,上面的行被执行了太多次。再次阅读Activity
生命周期here的解释,当我遇到类似问题时,这是我做的第一件事。
请回复我们,了解有关主Activity
的更多信息。
答案 1 :(得分:0)
邪恶的黑客:
添加一个静态指针指向您自己的活动,在调用“onCreate”时填充或覆盖它。如果它为null,则播放您的电影,否则播放。 你可以用静态布尔值做同样的事。
private static boolean isRunning = false;
protected void onCreate(Bundle bundle) {
super.onCreate(bundle)
if(!isRunning)
{
isRunning = true;
//Play your video here
}
}
有更多优雅和正确的方法可以做到这一点,但如果你赶时间,这可能会有用。