ページに30以上の画像を読み込む必要があります(ティーザーテキスト付き)。 AsyncTaskを介してすべてのイメージを読み込みますが、メインスレッドのビューに対してのみ変更を実行できるので、現在のレイアウトを変更することはできません。私のアプリが「ページ読み込み」中にハングする必要がないように、非同期的にすべてを読み込む最良の方法は何ですか?アンドロイドのバックグラウンドビューのアクティビティ
答えて
レイアウトを変更できないのはなぜですか? AsyncTask
の場合は、onProgressUpdateがUIスレッドで実行されます。 doInBackground
コードにpublishProgressと電話するだけです。
==更新==
private class LoadImageTask<Url, String, String> extends AsynTask{
doInBackground(Url... urls){
for(int i=0; i<urls.length; i++){
File img = DownloadImage(urls[i]); // Your download method..
publishProgress(img.filename); // Suppose it is saved in sd card
// publish progress will call onProgressUpdate immediately, but on different thread
}
}
onProgressUpdate(String filename){
// Update the UI.. this method will run on UI thread
displayImage(filename);
}
}
私はあなたがバックグラウンドでビューを構築することができるとは思いません。あなたは、進行中のダイアログを表示して、ユーザがアプリケーションがなぜビジーであるのかを理解できるようにすることをお勧めします。
タスクが別のスレッドで実行されていない場合は、進行状況ダイアログもブロックされます。 – xandy
クラスが活動を拡張する場合、あなたはまだかかわらず、非同期で実行
runOnUiThread(new Runnable() {
public void run() {
//Update UI elements in this block
}
});
これは私の主なスレッドをブロックしますが、終了するまでですか? – Jacksonkr
それはキューに入れられるので、メインスレッド上で実行されます。イメージをロードするスレッドについては、引き続き実行されます。 – PinoyCoder
- 1. iOS 4のUITableViewバックグラウンドビュー
- 2. アンドロイドのアクティビティの透明度
- 3. アンドロイド:アクティビティは、マニフェスト
- 4. スレッドのアンドロイド待機アクティビティ
- 5. 他のアクティビティからの変更後のアンドロイド更新アクティビティのテキストビュー
- 6. アンドロイド:2つのアクティビティ、一つのタブは
- 7. アンドロイドでのアクティビティ開始の問題
- 8. アンドロイドでアクティビティを殺す
- 9. アンドロイド:子アクティビティで親アクティビティから実行中のスレッドを使用
- 10. このアクティビティを閉じるには? (アンドロイド)
- 11. ArrayListの送信<float[]>アクティビティ(アンドロイド)
- 12. アンドロイドのフロントにアクティビティを届けるブロードキャストレシーバ
- 13. 次のアクティビティのUIを塗りつぶすアンドロイドの現在のアクティビティをフォーム
- 14. アンドロイドの別のアクティビティでアクティビティを作成することはできますか?
- 15. アンドロイドは1つのアクティビティから別のアクティビティに移動します
- 16. アンドロイド - アンドロイド設定メニューで新しいアクティビティを追加
- 17. アンドロイドでアクティビティを再開する
- 18. アンドロイド - 同じアクティビティに滞在する
- 19. アンドロイド3.0以上の1つのアクティビティで2つのリストビュー
- 20. Android:アンドロイドのアプリケーションから他のアプリケーションのアクティビティを呼び出す
- 21. アンドロイドでのアクティビティ間のデータの保存方法ショッピングカート
- 22. ベストプラクティスのアクティビティ - アンドロイドでの切り替えと表示の変更
- 23. アクティビティの多くのインポートは、アンドロイドのパフォーマンスに影響します
- 24. アンドロイドの2つのアクティビティ間でデータを渡す方法は?
- 25. アンドロイドonBackPressedは()私のプロジェクトに戻って、以前のフラグメント/アクティビティ
- 26. アンドロイドの意図を持たないアクティビティへの自動移動
- 27. アンドロイド:私はこのコードを持っている2つのアクティビティ
- 28. SearchManagerアクティビティの結果をアンドロイドのメインアクティビティに取得
- 29. アンドロイドでの新しいアクティビティの自動開始
- 30. アンドロイドの別のアクティビティからAsynkTaskを呼び出す方法は?
意志を使用することができますか?それとも、私のメインスレッドを「一時停止」しますか? – Jacksonkr
onProgressUpdateは一時停止するため、UIを更新するだけです。読み込みはdoInBackgroundで行われると仮定します。更新の回答を確認してください。 – xandy