1つの非同期タスクでスレッドをスリープさせたいとします。1つの非同期タスクのスレッドスリープは、アプリケーション内の他の非同期タスクを一時停止します。
コード:
protected Weather doInBackground(Void... params) {
try {
Thread.sleep(10000);
} catch (Exception ex) {
}
}
これは、一時停止するアプリケーションの他の非同期タスクが発生します。どうして? 私の意図は、スレッドを一時停止するのではなく、ネットワークコールに時間がかかるため、アプリケーション内のすべての非同期タスクが一時停止します。
この問題を解決するにはどうすればよいですか?
これは私が非同期タスク
WeatherAsync weatherAsync = new WeatherAsync(Pref.getString(getApplicationContext(), Pref.local.WEATHER_CITY), null, null,
new WeatherAsync.WeatherAsyncCallback() {
@Override
public void onCancelled() {
}
@Override
public void onPreExecute() {
}
@Override
public void onPostExecute(Weather result) {
if (result == null) {
return;
}
Log.d("Temp", "" + result.getTemp());
//adapter.addWeather(new NavigationDrawerItem(result, NavigationDrawerItem.WEATHER_VIEW));
}
});
weatherAsync.execute();
ありがとう、私はこれを知らなかった。私は4つのfragmnetsをロードするビューページャを持っています。そのうち2つはメインアクティビティで合計4つのasycタスクを実行します。もしそれらがつまってしまったら、すべてが固まってしまいます。この問題と戦うには? –