1

アプリケーションが初めて実行されると、画像と一部のデータをアプリケーションから内部メモリにコピーし始めるアプリケーションを構築しました。次に、これらのデータを後で別のアクティビティのどこかで使用します。

コピー処理に 30 秒以上かかります。だから私はこれを非同期タスクでやりたかったのです。しかし、私はそれを機能させることができませんでした。非同期タスクは正常に実行されますが、タブ スペックを作成し、onPostExecute メソッドの各スペックにインテントを割り当てる必要があります。しかし、仕様のないタブバーしか表示されず、何も機能しません。

このようにそれを構築する方法はありますか?

どんな助けでも大歓迎です。ここで私のアクティビティは、

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabbar_main);

    myJSON = new DataBaseJSONFunctions(this);

    TabHost tabHost = getTabHost();

    TabWidget tabWidget = tabHost.getTabWidget();

    Resources res = getResources();
    //TabHost tabHost = getTabHost();

    TabHost.TabSpec spec;
    Intent intent;

    // Starting Initialization process.
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    if(!prefs.getBoolean("firstRun", false)) {

        initializeAll();
        // Set "firstRun" true to make it runs once application is installed.
        prefs.edit().putBoolean("firstRun", true).commit();
    }

そして、このブロックを非同期タスクに入れたいのですが、

    intent = new Intent().setClass(this,Activities.class);
    spec = tabHost.newTabSpec("activities").setIndicator("act",res.getDrawable(R.drawable.tab_activities_selector)).setContent(intent);
    tabHost.addTab(spec);

    // doing the same things.
    intent = new Intent().setClass(this, Promotions.class);
    spec = tabHost.newTabSpec("promotion").setIndicator("Promotion",res.getDrawable(R.drawable.tab_promotions_selector)).setContent(intent);
    tabHost.addTab(spec);


    // doing the same things for Albums Activity.
    intent = new Intent().setClass(this,Menu.class);
    spec = tabHost.newTabSpec("menu").setIndicator("Menü",res.getDrawable(R.drawable.tab_menu_selector)).setContent(intent);
    tabHost.addTab(spec);

    for(int i = 0; i < tabWidget.getChildCount(); i++){
        tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_bar);
    }

    tabHost.setCurrentTab(0);

ところで、私は自分のアクティビティのコンテキストを非同期タスクに渡しています。

4

1 に答える 1

0

TabHostから移入しようとすることAsyncTaskは、少し型破りです。アプリケーションが開始されたらすぐにタブを入力することをお勧めしTabHostます。次に、実行すると、何かが起こっていることをユーザーに知らせるために表示されるAsyncTask場合と表示されない場合があります。終了したら、UI を新しいもので埋めることができます。データ。ProgressDialogAsyncTask

于 2012-05-03T19:16:22.277 に答える