Сбой заставки - PullRequest
       17

Сбой заставки

0 голосов
/ 10 января 2012

У меня проблемы с созданием заставки. Он начинается вполне нормально, но затем переходит к следующему действию и вылетает после временной анимации. Вот мой код:

public class SplashScreen extends Activity {
final static int DURATION = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
}

@Override
protected void onResume() {
    super.onResume();
    splashWelcome(DURATION);
}

//Run the splash screen for given time limit
protected void splashWelcome(final int limit) {
    Thread splashThread = new Thread() {
        @Override
        public void run() {
            try {
                int waited = 0;
                while (waited < limit) {
                    sleep(100);
                    waited += 100;
                }
            } catch (InterruptedException e) {
                Log.d("SplashScreen Error:", e.getMessage().toString());
            } finally {
                Intent i = new Intent(getApplicationContext(), Main.class);
                startActivity(i);
                finish();   
            }

        } 
    };
    splashThread.start();
}

}

Это ошибка:

01-10 12:23:57.835: ERROR/AndroidRuntime(19092): FATAL EXCEPTION: Thread-10
01-10 12:23:57.835: ERROR/AndroidRuntime(19092): java.lang.NullPointerException
01-10 12:23:57.835: ERROR/AndroidRuntime(19092):     at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:100)
01-10 12:23:57.835: ERROR/AndroidRuntime(19092):     at com.fab.quotes.SplashScreen$1.run(SplashScreen.java:36)
01-10 12:23:57.835: WARN/ActivityManager(114):   Force finishing activity com.fab.quotes/.Main

Ответы [ 2 ]

1 голос
/ 10 января 2012

попробуйте использовать

Intent i = new Intent(SplashScreen.this, Main.class);
0 голосов
/ 10 января 2012

Вы звоните getApplicationContext() внутри потока.

Попробуйте заменить:

Intent i = new Intent(getApplicationContext(), Main.class);

На:

Intent i = new Intent(SplashScreen.this, Main.class);
...