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 に答える