私のアプリケーションでは、私はUI Settingのためのクラスを持っています、その名前は "SettingActivity"です。AsyncTaskがアプリケーションのメインスレッドで実行されるのはなぜですか?
次に、バックグラウンドでいくつかのジョブを実行するために、このUIクラス(SettingActivity)をサービスにバインドします。 このサービスには、.aidlファイルで定義された2つの事前定義メソッドがあり、1つはstartTask()、もう1つはstopTask()です。
startTask()内で、私はAsyncTaskを呼び出しました。しかし、私はこのAsyncTaskのルーパーの名前をチェックした。それは「メイン」です。私の意見では、AsyncTaskは、メインスレッド以外の別のスレッドを開始する必要があります。
誰かがなぜこれが起こるのか知っていますか?
コードは次のとおりです。
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.d(TAG, "onPreExecute "+Looper.myLooper().getThread().getName());
}
Then I will get main as the output.
サンプルコードを投稿すると便利です。 –