后退按钮需要很长时间才能返回 - 可能的原因?

时间:2011-05-17 23:31:30

标签: android delay lag

所以我有一个菜单屏幕活动,调用其他类似的活动

option = new Intent(getApplicationContext(), OptionsScreen.class);  

...  

startActivity(option);

此选项屏幕到目前为止无效。更具体地说,它是:

public class OptionsScreen extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options);
    Toast.makeText(OptionsScreen.this, "options", Toast.LENGTH_SHORT).show();
}

这就是现在的整个活动。我以类似的方式打电话给其他活动。 当我回击时,它一直需要5秒钟才能返回菜单屏幕。这不应该花费很长时间,因为OnResume()除了设置onclick监听器之外什么都不做。编辑:在MOTODEV模拟器上它冻结(可能是一个不同的问题),在基本的Android模拟器上,它的运行方式与手机上的相同(5秒延迟)。
可能相关 - 当首次调用菜单屏幕时,它会播放5秒钟的视频,然后使用ViewSwitcher进入菜单。该视频仅在应用首次运行时播放。

这种延迟有哪些可能的原因?非常感谢任何想法。

编辑:以下是播放视频的OnCreate()函数的代码。我实际上删除了它并没有解决延迟,但无论如何我都会发布它。

VideoView logo;
...

logo.setVideoURI(Uri.parse("android.resource://COM.PRACTICE/" + R.raw.logoanimation2));
    logo.requestFocus();
    logo.start();
    logo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            // TODO Auto-generated method stub
            mHandler.removeCallbacks(UpdateTimeTask);
            mSwitcher = (ViewSwitcher) findViewById(R.id.viewSwitcherMenu);
            mSwitcher.showNext();
            menushown = true;
            logo.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                };
            });
        }
    });

编辑:好的,所以当我把“mSwitcher.showNext();”在OnResume的开头,它没有延迟地返回,并再次播放视频。我想我需要做些什么来立即在viewSwitcher中显示正确的视图?谁知道那是什么?

编辑:我部分解决了这个问题。我从它发起的活动中有2/3的延迟消失了。我以一种奇怪的方式做到了这一点,我仍然希望更好地理解它。我将以下代码添加到Onresume():

if (menushown) {mSwitcher.showNext(); mHandler.postDelayed(ViewSwitcherTask, 100);}

然后将其添加到活动类:

Runnable ViewSwitcherTask = new Runnable() {
    public void run() {
       mSwitcher.showNext();
    }
 };

简单地调用showNext()两次不起作用,也没有做任何我尝试过的事情。这显然不是理想的解决方案。为什么它会在我的屏幕的2/3上工作?有谁知道我为什么要这样做?什么是解决此延迟的更好方法?

编辑:我只是在视频切换器播放后从视频切换器中删除了视频视图。完全解决了这个问题。

0 个答案:

没有答案
相关问题