私はスレッドを実行して安全に停止することができましたが、別のスレッドを開始するのに最適なのは何ですか?スレッドを再起動できないので、新しいスレッドを作成する必要があります。ここでスレッドを再起動する
は、私が何を意味するかです:
1自動的に呼び出さ)最初のスレッド - シンプルなカウンターのような行為は、
2のスレッドの「実装して実行可能な」メソッドを使用して作成された)このスレッドを中断ボタンを持っていますそのスレッドが中断される前に相互作用した最後の値を格納します。
3)次のボタンは新しいスレッドを呼び出し、その値を開始点として使用する必要があります。以下のコードで私の最初の刺し傷である:
@Override
public void run()
{
Log.v( TAG,"Runnable");
if(isRunning)
{
Log.v( TAG,"Runnable -> Inside While Loop");
counter.setText(" "+i);
setCounter(i);
handler.postDelayed(this, 1000);
i++;
} else if(!isRunning)
{
if(Thread.currentThread().isAlive())
{
Thread.currentThread().interrupt();
Log.v("Current Thread:", ""+Thread.currentThread().toString() );
} else {
// Thread not alive
}
}
}
と再開スレッド方法:
// Cannot restart a thread - you have to create a new one!
public void resumeThrd()
{
// isRunning = true;
Log.v("isRunning Value:", "TRUE");
// Create a new Thread to run
newThrd = new Thread(this);
newThrd.start();
}
そう - どのように私はそれについて行けば?入力を許可し、私の再開メソッドでそれを呼び出すために私の元のスレッドメソッドを改造する必要がありますか?これは安全ですか、元のスレッドはまだアクティブになり、新しいものを作成すると状況が遅くなりますか?
最後に、新しいスレッドを正しく作成するにはどうすればよいですか?
を呼び出します新しいものとそれを実行している? – Katana24
はい、while(true){}を使用してスレッドを実行する代わりに、これはAndroidが提供する最適なオプションです。 –