Итак, у меня есть экранное меню, которое вызывает другие действия, например:
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 () ничего не делает, кроме как настраивает прослушиватели по щелчку. редактирование: на эмуляторах 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 моих экранов? Кто-нибудь знает, почему я должен был это сделать? Как лучше исправить эту задержку?
EDIT: я просто удалил видеовид из переключателя вида после его воспроизведения. Исправлена проблема полностью.