これは最近私を本当に混乱させています。開始するスレッドがあり、それを強制終了するまで実行し続けます-while変数をfalseに設定します。
これはすべて正常に機能しますが、方向の変更時にスレッドとの接触が失われるため、停止できません。問題を明確にするためにこれを書きました:
public class FTTest extends Activity {
boolean isPlaying = false;
Player player = new Player();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fttest);
}
public void play(View v) {
if (!isPlaying) {
Log.d("Play Button", "Start Pressed");
player.start();
isPlaying = true;
} else {
Log.d("Play Button", "Stop Pressed");
player.going=false;
isPlaying = false;
}
}
}
プレイヤーはこれだけです:
public class Player extends Thread{
int i;
public boolean going=true;
public void run(){
while(going){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
i++;
Log.d("Thread", "Running "+i+" times");
}
}
}
これを解決するためにフラグメントを使用することについて読んでいますが、このコンテキストでそれらを使用する方法について頭を悩ませることはできません。私が見逃している簡単なものはありますか?
ご協力いただきありがとうございます、
マイク