2012-01-04 9 views
1

私は開発中のアプリを試しています。アプリの起動をより早くするにはどうすればよいですか?

アプリを起動すると、アプリのUIを使用できるようになるまでに現在3秒間の遅延があります。遅延の間、画面は黒色で、タスクバーとその下のアプリケーションのタイトルバーは別です。

私はメインのアクティビティにスプラッシュスクリーンをダイアログとして表示することを考えていました。しかし、それは3秒後にのみ表示され、無駄になります。これは、ほぼすべての3秒の遅延の打ち上げと誰もがこの遅延の間にシーンをbehing何が起こっているかで私を教育することができ

super.onCreate(savedInstanceState). 

への呼び出しの間で行われることを意味しますか?私はそれを短縮するために何ができますか?

+0

実行された 'on *'関数はどれですか?遅いコードがあるかどうかチェックしましたか? – rekire

+0

ui/eventスレッドで長い操作(ネットワーク接続)を行っていますか? – rfsk2010

+0

さて、もっと正確なタイミングをとった。 onCreateの開始からonResumeの開始まで(ファイルを解析するために1.23秒を含む)には1.45秒かかる。最初のonDrawに0.62秒。パースはUIアダプター内にあります。なぜなら、これはArrayAdapterを生成するためです。私は別のスレッドに移動しようとして失敗したが、それは私のアダプタのインデックス作成とフィルタリングを混乱させていた。私はもう一度やり直さなければならないだろう。 – tos

答えて

2

低速コードを見つけて、2番目のスレッドに配置してください。

new Thread(new Runable() { 
    @Override 
    void run() { 
     // slow code goes here. 
    } 
}).start(); 
+0

私のコードとは別の理由があるかもしれないが...だから私は犯人だ!私は起動とonCreateの呼び出しの間に多くの処理が起こると思いました。しかし、そうではありません。 – tos

関連する問題