これは、私のアプリの最初のアクティビティのonCreateメソッドです。すべてのウィジェットを初期化し、インターネットからモデルデータをロードするスレッドを開始します。場合によっては、ネットワークが非常に遅いか応答していないときに、"initializeModelThread"
CPU全体を使用しているように見え、onCreateメソッドを終了できません。
あるケースではLog.v("Time...)
、300ミリ秒後に呼び出されたことがわかりましたが、HttpExceptionが停止するまで、画面は約20秒間黒のままでしたinitalizeModelThread
。スレッドの優先度を低く設定したことがすでにわかります。
この場合、AsyncTaskの使用は役に立ちますか?その問題について他に何か考えはありますか?
public void onCreate( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
Long time = System.currentTimeMillis();
initializeWidgets();
Thread threadInstance = new Thread(initializeModelThread);
threadInstance.setPriority(Thread.MIN_PRIORITY);
threadInstance.start();
Log.v("Time", "Difference from start " + Long.toString(System.currentTimeMillis() - time));
}