2

愚かなアプローチを試したところ、アプリがクラッシュしました...基本的に、3つのタブ(3つのアクティビティを含む)を持つアクティビティがあります。各タブは、ネットからダウンロードされたxmlファイルから入力を取得します。すべて問題ありませんが、アプリを起動すると、xmlファイルがダウンロードされ、これには「待機」時間があります。

スプラッシュ画面を追加することで、これを回避することができました。見た目は美しいですが、問題は2番目のタブをクリックすると、リストをネットから削除する必要があるため、見栄えが悪くなります...リストを表示する前に待機します。だから私がしたのは、xmlファイルをダウンロードするだけのAsyncTaskを設計することでした。私の主な活動では、最初に2つのタスクを生成し、URLとインテントをパラメーターとして送信します。そして、タブ内で始まる活動の中で、私はwait()を使用します。AsyncTask内で、ダウンロードが完了した後、notify()を使用してインテントに通知します。これがクラッシュしました!もちろん、私はそれが機能することを期待していませんでしたが、試してみたかっただけです:)これが失敗した理由についてのフィードバックを得るか、他の人がこれに時間を浪費するのを防ぐためにそれを書いてください...

今、私は多くの人がタブ内の「待機」時間の問題に直面していると確信しています。どうすればこれを解決できますか?画面を暗くしてから一連のトーストを表示するか、タブ内に進行状況インジケーターを表示するか、xmlファイルをプリフェッチすることを考えています...これらをどのように実現できるかについての手がかりがありません...任意考え?

4

2 に答える 2

2

クレジット:マークする。ありがとう!

問題:アプリケーションが作業で忙しいときに進行状況インジケーターを表示する

アプローチ:

public class Approach extends ListActivity {

    ProgressDialog myProgressDialog = null; 
    ListView myList = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myList = getListView();

        myProgressDialog = ProgressDialog.show(getParent(),       
                "Please wait...", "Doing extreme calculations...", true); 
        //Do some calculations
            myProgressDialog.dismiss();

    }
}

いくつかの課題があります(一部のUI要素の更新など)。必要に応じて、計算を行うために別のスレッドを生成することをお勧めします。

また、これに興味がある場合は、マットのアプローチにも興味があるかもしれません:android-showing-indeterminate-progress-bar-in-tabhost-activity

于 2009-10-09T17:23:50.957 に答える
1

ProgressDialog

android:visibility="gone"または、データの準備ができるまでタブを作成してから、作成しますvisible。暫定的に、ある種の読み込みグラフィックを表示します(おそらくRotateAnimation適用された状態で)。

于 2009-10-08T23:14:07.827 に答える