次のような宣言があります。
// Background doer
Thread BgThread = new Thread() {
@Override
public void run() {
aBgCounter = 0 ;
boolean stopNow = false ;
try {
while( !stopNow ) {
sleep( 1000 ) ;
WriteOnThatLogCat( "BgThread " + String.valueOf( aBgCounter ) ) ;
aBgCounter++ ;
if( aBgCounter > 12 ) stopNow = true ;
}
} catch (InterruptedException e) {
e.printStackTrace() ;
}
}
};
完了すると、このように正常に呼び出されます( logcat に 12 までカウントされます)。プロセスは正しく終了します。次のように始まりました:
WriteOnThatLogCat("Issue BgThread.start() from 6") ;
BgThread.start() ;
もちろん、これはもっと複雑な処理のフロー制御です。とにかく、後でプログラムは同じことをもう一度行うことに決め、スレッドを再度呼び出したいと考えています。スレッドは再利用できないと読みましたが、識別子などを再利用できるようにしたいので、特定のことを実行し、自分自身を生きて死に、再利用できる多くのスレッドを呼び出すことができます。= NULL とあらゆる種類のものを試しました。上記を変更して、次のようなフラグメントを作成するにはどうすればよいですか。
WriteOnThatLogCat("Issue BgThread.start() from 6") ;
BgThread.start() ;
新しいスレッドを取得して、いつでもそのことを実行できますか? 目標プロセスとして各種類のスレッドをスリープ状態にして再起動しようとするのは無秩序だと思います。正しい方法は、それを実行して自分自身を殺し、必要に応じて再作成することです。私はこれにとても迷っていることに驚いています。
ありがとうダン