2017-07-16 8 views
0

コードがAsyncTaskから取得中です。Android Javaコードを停止点のように実行する方法

ブレークポイント(デバッグ中)を置くと、コードが正常に実行され、データが受信され、次にコードがそのデータを操作します。

ブレークポイントを使用していない場合、配列がnullの場合、コードはデータが到着するまで待機しませんでした。

私は、

Thread.sleep(timeInMills); 

SystemClock.sleep(timeInMills); 

を試してみましたが、これは全体のスレッドを停止するようだ、助けにはなりませんでした。 ブレークポイントが2〜2回と同じようにコードを停止する方法はありますか?

これも、AsyncTaskで実行されるUIスレッドには影響しません。

+0

空になると、それはonPostExecuteメソッドの最後に実行させる同様の状況

に直面しています](https://developer.android.com/reference/android/os/AsyncTask.html) - 'onPostExecute'は結果を続けるべきです。それは別の時のコールバックである_asynchroneous_の意味です。 –

+0

私はonPostExcuteを使用していますが、今回は配列を空にしているinbackgroundとしては役に立ちません。 –

+0

[問題を再現する最小限のコード](http://stackoverflow.com/help/mcve)を共有してください。それがなければ、あなたがしようとしていることを推測しているだけです。 –

答えて

0

あなたはアダプタまたは関数に結果の配列を送信する場合、以前のように私はAsyncTask [あなたのデータアレイは

+0

論理はこのように背景にあります。 1. firebaseデータベースにクエリを実行します。 2.実行中のロジックがクエリ結果を比較します。 3.結果をファイルに書き込みます。 4.ファイルから配列への結果を読み込みます。 5.配列の結果をonPostExecuteに送信します。 6.結果に新しいアクティビティを開始します。 問題は、コードがファイルを書き込む前に結果ファイルを読み込もうとしているようです(Firebaseクエリが時間を費やしているため) 両方がdoingInBackgroundで実行されています –

+0

06:43:43.680読み取り応答は=>>空の 06:43:45.006書き込みレスポンスは次のとおりです。{"address": "Aharon Boxer 38 .... 私は読み書きの間に2秒の差があります。 –

+0

代わりに結果をonPostExcuteに送信し、ファイルとそれ以降は配列に読み込まれた後、すべての操作を行います。これで、あなたのデータがファイルに書き込まれたことが保証されます – Esraa

関連する問題