ロゴ画像を表示するアニメーションを含むログイン アクティビティがあり、アニメーションの実行中にバックグラウンドでログイン プロセスが実行されています。アニメーションとログイン プロセスの両方が終了するまで待ってから、プログラムの次の部分を実行したいと考えています。
私の最初の試みは、ログインプロセスをスレッドに入れ、スレッドが終了するまでブロックするためにonAnimationEnd
使用しています。
これは良い解決策のようですが、私は を使用しているため、メインの UI スレッドがブロックされ、ANR が発生する可能性があります。を使用しようとしましたが、イベントを処理できません。問題を解決する他の方法はありますか?thread.join()
thread.join()
AsyncTask
onAnimationEnd
コードは次のようになります。
protected void onCreate(Bundle savedInstanceState) {
........
title.startAnimation(set);
loginProcess.start();
........
}
public void onAnimationEnd(Animation animation) {
try {
loginProcess.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
........
}