2013-05-30 13 views
7

私は2つのアクティビティーを持っています.1つは SplashActivityで、もう1つはMainActivityで、アクティビティーはWebviewを含んでいます。バックグラウンドでアクティビティを開始し、その後に表示するにはどうすればよいですか?

スプラッシュ画面を表示するときにwebviewを読み込む必要があります。だから私はバックグラウンドでMainActivityをロードする方法を探していますSplashActivity::onCreate();

intendが直接呼び出された場合、MainActivityは直ちに前面に表示されますが、webviewには表示されません。

私はスプラッシュ画面について多くの解決策を探しましたthis のようになりました。ただし、スプラッシュ時間が終了するまでMainActivityを初期化しません。

+0

あなたは、いくつかのミリ秒遅れてmainactivityを示すことによって、アニメーションを使用してみてください... – amalBit

+3

最初MainActivityを起動でき、(のonCreateでSplashActivityを開始します)のMainActivity。必要な時間が経過すると、SplashActivityを終了してMainActivityが再び表示され、MainからSplashを起動したように見えます。 – user1721904

+0

@ user1721904ええ、私はその考えがうまくいくと思います。しかし、それについての詳細を教えてください。さあ、SplashActivityを止めるのに 'finish()'を使うべきですか?または私はそれを開始する予定ですか?また、答えとして書いてください。THX – SolessChong

答えて

5

Androidアプリはウェブデータをキャッシュできます。これをあなたの利益に利用することができます。 (それは私のために働いた)。 私がしたこと:

  • スプラッシュ画面でWebViewを作成しました。
  • UIに添付していません。
  • は、メインアクティビティに必要なウェブページをリクエストしました。
  • スプラッシュ画面のWebViewが読み込まれると、もう一方のアクティビティが開始されます。

WebViewスプラッシュ画面で作成したWebViewのキャッシュを使用します。

12

MainActivityを最初に起動し、のMainActivitySplashActivityを開始することができます。必要な時間が経過したら、SplashActivityを閉じてMainActivityが再び表示されるようにして、SplashからMainを起動したように見えます。

は私がそれを説明してみましょう - あなたのMainActiviy

intentを使用して、SplashActivityからMainActivityに結果を戻すのは嫌だとstartActivityなくstartActivityForResultを使用してSplashActivityを開始します。

今、あなたはSplashActivityであることを、スレッドを開始し、必要な期間、スレッドで待機し、その後SplashActivityが閉じて、以前MainActivityが前面に来る開始するようにfinish()を呼び出します。

これが役に立ちます。私は、これは完璧に動作するはず願ってい

-2

...

ProgressDialog pd; 

    pd = ProgressDialog.show(YOUR_ACTIVITY.this,"Loading...", true, false); 

      new Thread(new Runnable() { 

       @Override 
       public void run() { 
        // TODO Auto-generated method stub 

        Intent intent = new Intent(YOUR_ACTIVITY.this, 
          NEXT_ACTIVITY.class); 

        startActivity(intent); 
        pd.dismiss(); 
       } 
      }).start(); 

     } 
    }); 
関連する問題