2

私のアプリには2つのアクティビティがあります。1つはスプラッシュスクリーンで、もう1つはWebviewアクティビティです。スプラッシュ画面が表示された後、Webviewアクティビティを表示したいのですが、スプラッシュ画面の後、2〜3秒間空白の白い画面が表示され、次にWebviewアクティビティが読み込まれます。この白い画面を無視する方法についてのアイデア。私は多くの投稿でこの問題の解決策を調べましたが、成功しませんでした。どんな助けでもありがたいです。

コードの追加:スプラッシュスクリーンアクティビティ:

@Override
protected void onStart() {
    super.onStart();
    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            finish();
            startActivity(new Intent(SplashScreen.this,
                    WebViewActivity.class));
        }
    }, DELAY);
}
4

3 に答える 3

1

作業コード

public class WebActivity extends Activity {

protected boolean _active = true;

protected int _splashTime = 3000;

Thread splashTread;

private boolean stop = false;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web);

    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 {

                if(!stop){
                    startActivity(new Intent(WebActivity.this,Home.class));
                    finish();
                }
                else
                    finish();
            }
        }

    };
    splashTread.start();

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {

        if(splashTread.isAlive())
            this.stop = true;
    }
    return true;
}
}
于 2013-02-06T09:33:48.030 に答える
0

WebActivity.java、home.java などの 2 つのクラス ファイルを作成します。

WebActivity.java

       Handler handler = new Handler();

    // run a thread after 2 seconds to start the home screen
    handler.postDelayed(new Runnable() {

        @Override
        public void run() {

            // make sure we close the splash screen so the user won't come
            // back when it presses back key

            finish();
            // start the home screen

            ProgressDialog pd = new ProgressDialog(WebActivity.this);

            //use this before calling intent
                          pd.setMessage("Processing...");

            pd.show();



            Intent intent = new Intent(WebActivity.this, Home.class);

            WebActivity.this.startActivity(intent);

        }

    }, 2000); // time in milliseconds (1 second = 1000 milliseconds) until the run() method will be called

ホーム.java

   webview=(WebView)findViewById(R.id.webView1);
webview.setWebViewClient(new myWebClient());

webview.loadUrl("http://www.google.com");}

 public class myWebClient extends WebViewClient

 {

     @Override

        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            // TODO Auto-generated method stub


            view.loadUrl(url);

            return true;

        }
 }

Android マニフェスト

アクティビティ クラスを追加し、webview を読み込むためのインターネット アクセス許可を設定するだけです

于 2013-02-05T09:05:32.197 に答える