Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Kroshandowski
2 / 2 / 4
Регистрация: 05.04.2013
Сообщений: 234
1

SplashScreen не дает запуститься MainActivity

24.12.2013, 00:11. Просмотров 574. Ответов 2
Метки нет (Все метки)

Здравствуйте!Есть предзагрузочная анимация в приложении и при запуске на эмуляторе все идет гладко. Решил запустить на телефоне,но тут проблема....после окончании анимации,черный экран и сообщение "Приложение остановлено",а на фоне сообщения видно,что загружен MainActivity. В чем может быть проблема?

Сам код SplashScreen

Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.ImageView;
 
public class PreLoad extends Activity {
 
    /**
     * The thread to process splash screen events
     */
    private Thread mSplashThread;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        // Splash screen view
        setContentView(R.layout.preload);
 
        // Start animating the image
        final ImageView splashImageView = (ImageView) findViewById(R.id.imageView);
        splashImageView.setBackgroundResource(R.anim.anim_android);
        final AnimationDrawable frameAnimation = (AnimationDrawable)splashImageView.getBackground();
        splashImageView.post(new Runnable(){
            @Override
            public void run() {
                frameAnimation.start();
            }
        });
 
 
        final PreLoad sPlashScreen = this;
 
        // The thread to wait for splash screen events
        mSplashThread =  new Thread(){
            @Override
            public void run(){
                try {
                    synchronized(this){
                        // Wait given period of time or exit on touch
                        wait(5000);
                    }
                }
                catch(InterruptedException ex){
                }
 
                finish();
 
                // Run next activity
                Intent intent = new Intent();
                intent.setClass(sPlashScreen, MainActivity.class);
                startActivity(intent);
                stop();
            }
        };
 
        mSplashThread.start();
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
        return false;
    }
 
    /**
     * Processes splash screen touch events
     */
    @Override
    public boolean onTouchEvent(MotionEvent evt)
    {
        if(evt.getAction() == MotionEvent.ACTION_DOWN)
        {
            synchronized(mSplashThread){
                mSplashThread.notifyAll();
            }
        }
        return true;
    }
 
 
}


Что здесь не так?
Заранее спасибо.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 00:11
Ответы с готовыми решениями:

Видеокарта radeon rx 460gb strix gaming не дает запуститься ПК
Доброго времени суток.Решил поменять видеокарту, приобрел radeon rx 460gb strix gaming. Вставил в...

Вирус меняет настройки прокси сервера и не дает запуститься программе восстановления системы
Вирус меняет настройки прокси сервера и не дает запуститься программе восстановления системы.

Вирус не дает запуститься некоторым антивирусным программам, консоли Windows (CMD), программе AVZ и тд
Как я уже написал Вирус не дает запуститься некоторым программам таким как AnVir Task Manager, AVZ,...

Вирус не дает установить антивирусные программы и не дает скачать антивирусы с сайтов
Когда я пытаюсь установить доктор веб либо любой другой антивирус на этапе установки выбивает...

Почему float/0 дает infinity а int/0 дает error?
Почему float/0 дает infinity а int/0 дает error?

2
YuraAAA
1601 / 1333 / 291
Регистрация: 25.10.2009
Сообщений: 3,486
Записей в блоге: 2
24.12.2013, 00:54 2
Kroshandowski, остановка потока - плохая практика. Попробуйте использовать Handler#postDelayed link
И зачем вообще synchronized?
0
verylazy
Заблокирован
24.12.2013, 11:48 3
Цитата Сообщение от Kroshandowski Посмотреть сообщение
и сообщение "Приложение остановлено"
по идее в логах должно было насыпать текста с описанием ошибки, с ней было бы легче понять что не так
0
24.12.2013, 11:48
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2013, 11:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Splashscreen
А можно сделать так, чтобы при запуске приложения появлялась картинка, а потом запускалась...

SplashScreen
Сделал для своего приложения SplashScreen, чтобы заполнять бд, коннектиться к серверу, и тд. Но...

splashScreen
QSplashScreen *splash = new QSplashScreen(pixmap); splash->show(); form->show(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.