0

我想等待启动画面完成他的任务,然后继续进行活动。我认为我的错误是因为等待启动画面的时间太多,我的启动画面是为了从服务器获取一些字符串,它有所有需要。创建并需要等待启动画面完成的第一类是:更新:

            Thread splashTread = new Thread() {
                @Override
                public void run() {
                    try {
                        splash  splash=(tools.splash) new splash(first.this).execute();
                        int waited = 0;
                        while(splash.running && (waited< getResources().getInteger(R.integer.splashTimeOut)))
                        {
                            sleep(100);
                            if(splash.running) {
                                waited += 100;
                            }
                            // nextActivity=splash.newActivity;
                        }
                    } catch(InterruptedException e) {
                        // do nothing
                    } finally {
                        finish();

                    }
                }
            };
            splashTread.start();

虽然启动画面还可以

  public class splash extends AsyncTask<String, Void, String>

它是错误的,因为它创建了一个新活动然后执行线程....

4

2 回答 2

2
public void onCreate(Bundle savedInstanceState) {
   protected boolean _active = true;
   protected int _splashTime = 1000;
  super.onCreate(savedInstanceState);
     setContentView(R.layout.main);


    Thread splashTread = new Thread() {
        @Override
        public void run() {
            try {
                int waited = 0;
                while(_active && (waited < _splashTime)) {
                    sleep(100);
                    if(_active) {
                        waited += 100;
                    }
                }
            } catch(InterruptedException e) {
                // do nothing
            } finally {
                finish();

            }
        }
    };
    splashTread.start();
于 2012-09-26T07:45:46.147 回答
0

我希望我的代码对你有帮助

public void onStart() 
    {
        super.onStart();

        Thread background = new Thread(new Runnable() 
        {
            public void run() 
            {
                try
                {
                    Thread.sleep(3000);
                    Intent langSelect = new Intent(EduApp.this, LanguageActivity.class);
                    startActivity(langSelect);
                    genHelper.goForwardScreen();
                }
                catch (Throwable t) 
                {               
                    System.err.println("Thread Exception IN Splash Screen->" + t.toString());
                }
            }
        });
        background.start();
    }

在这里开始下一个活动..

于 2012-09-26T07:37:57.707 回答