2016-10-26 15 views
0

アクティビティでDownloaderを実行すると、Asynctask内に2つのレベルがあることが再開されます。まず、サーバーからバージョンをチェックし、必要に応じてpostExecuteで別のasynctaskを実行してコンテンツをダウンロードします。すべてのポストを実行すると、2番目の非同期タスクが実行されると、すべてのものが成功すると、このスプラッシュアクティビティを閉じて次のアクティビティを開く、自分のアクティビティをコールバックするインターフェイスメソッドが呼び出されます。AsyncTaskの原因アクティビティのレイアウトが空白になる

私はグーグルではありますが、私の質問は同じではありません。私はAsynctasksのUIの何もない。

new CacheUpdater(this, new CacheUpdater.CacheUpdateCallback() { 
    @Override 
    public void afterCacheUpdate() { 

     Intent newActivity = new Intent(NoDisplay.this, MainActivity.class); 
     newActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent 
       .FLAG_ACTIVITY_CLEAR_TASK); 
     startActivity(newActivity); 

    } 
}).updateCache(); 

なぜアクティブなレイアウトが空白のeatherを表示するのですかUIを作成してからアクティビティのOnResumeを実行した後でUIタスクを実行しますか? アクティビティレイアウトで非同期タスクを作成または実行すると、どのように表示されないのですか?

+0

onPostExecuteの終わりにAsyncTaskを呼び出すことができますonPostExecute

に他の活動を進めます。あなたは論理を変更する必要があります – Stallion

答えて

0

ロジックを両方ともAsyncTaskdoInBackgroundメソッドに入れます。両方のロジックが処理されると

、その後、バックグラウンド動作のためではないあなたは、あなたのActivityonCreate方法

@Override 
    protected Boolean doInBackground(Void... params) { 

    //Task One 

    //Get result of Task 
    //Compare 
    if(comparison_is_true){ 

      start second Task which was initially in second AsyncTask  

    } 

    return true; 
    } 

    @Override 
    protected void onPostExecute(Boolean aBoolean) { 
     super.onPostExecute(aBoolean); 

     //Start your intent 

    } 
+0

私はそれを行うことはできません。なぜなら、2番目のAsynctaskを実行する必要があるかどうかを比較し、計算するための応答を得るべきです。それはpostexecuteにちょうどいいです。 – Kenji

+0

FIRSTの反応を得るために、何をしていますか?あなたの関連するコードをすべて入れてください。 – Stallion

+0

私は非常に複雑で多くのクラスに私はここに貼り付けてくださいコピーするasynctaskにいくつかのラッパーを書いた。 – Kenji

関連する問題