【问题标题】:Android always play intro clipAndroid 总是播放介绍剪辑
【发布时间】:2009-10-14 19:29:34
【问题描述】:

我正在尝试让我的应用程序仅在我启动 activities 时播放介绍剪辑。 但是从我的代码来看,它总是在唤醒后播放剪辑,然后再恢复到应用程序,尽管我没有关闭应用程序。我能做些什么来解决这个问题?

从主要:

startActivity(new Intent(this, MyIntro.class));

来自我的介绍:

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();  
    }

}

【问题讨论】:

    标签: android video


    【解决方案1】:

    你在你的主 Activity 中覆盖了什么函数 - 你调用的那个函数

    startActivity(new Intent(this, MyIntro.class))
    

    ?

    我会假设它是onResume(),因此上面的行执行了太多次。再读一遍Activity生命周期here的解释,当我遇到这样的问题时,这是我做的第一件事。

    请向我们提供有关主要Activity 的更多信息。

    【讨论】:

      【解决方案2】:

      邪恶的黑客:

      添加一个指向您自己的活动的静态指针,在调用“onCreate”时填充或覆盖它。如果它为空,则播放您的电影,否则,不要。 你真的可以用静态布尔值做同样的事情。

      private static boolean isRunning = false;
      
      protected void onCreate(Bundle bundle) {
          super.onCreate(bundle)
          if(!isRunning)
          {
              isRunning = true;
              //Play your video here
          }
      }
      

      有很多更优雅和正确的方法可以做到这一点,但如果你赶时间,这可能会奏效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-14
        相关资源
        最近更新 更多