Заставка с фоновыми задачами - PullRequest
0 голосов
/ 24 января 2012

Я пытаюсь сделать так, чтобы мое приложение запускало заставку на 5 секунд при инициализации различных веб-сервисов в фоновом режиме.Вот мой код:

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    // Splash screen view
    setContentView(R.layout.splashscreen);

    final SplashScreen 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)
            {                    
            }
            finally 
            {

                finish();


                // Run next activity
                Intent intent = new Intent();
                intent.setClass(sPlashScreen, Splash_testActivity.class);
                startActivity(intent);
                stop();
            }
        }
    };

    mSplashThread.start(); 

    for (int i=0;i<100;i++)
    Log.d("splash test", "initialize web methods");
}

Теперь, я думаю, должно произойти следующее: во время отображения заставки приложение должно регистрировать «инициализация веб-методов».

Но на самом деле происходит следующее.что журнал добавляется только после исчезновения косой черты.

Что я делаю не так ??

Ответы [ 2 ]

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

Попробуйте сделать это таким образом . Этот учебник прост и гибок. Это то, что вам нужно:

// You initialize _splashTime to any value

// thread for displaying the SplashScreen
Thread splashTread = new Thread() {
    @Override
    public void run() {
        try {
            int waited = 0;
            while(waited < _splashTime)) {
                sleep(100);
                waited += 100;
            }
            }
        } catch(InterruptedException e) {
            // do nothing
        } finally {
            finish();
            startActivity(new Intent("com.droidnova.android.splashscreen.MyApp"));
            stop();
        }
    }
};
splashTread.start();

Примечание. Этот код принят по вышеуказанному адресу.

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

Запустите ваш поток, используя обработчик или AsyncTask.

...