私はこのコードを持っています例えばstopThread()関数を使ってスレッドから前後に移動するwhile変数の値を変更して、スレッドの実行を停止します。コードを実行してボタンを押すと、スレッドが開始されません。なぜどんなアイデア?アンドロイドのスレッドが
0
A
答えて
0
background.start()
が呼び出されると、isRunning
はまだfalseであるため、スレッドは開始されますが(whileループには入りませんでした)、すぐに停止します。
startThread
が呼び出されたとき、あなたはstartThread()
メソッドに次のコードを置くことができますwhileループを入力するようにスレッドを確保するために:ちょうどその行を削除し、
public void startThread(){
isRunning = true;
start();
}
そして、あなたがonCreate()
でbackground.start()
を呼び出すことはありません。
EDIT
あなたはそれを「開始」と好きなようにそれのように何回も「止める」ことができるように、生きている単一のスレッドを維持したい場合は、次のコードを使用することができます。
をpublic void run() {
while (isRunning) {
if(!isWorking) {
try { Thread.sleep(10); } catch (InterruptedException ex) { }
continue;
}
//.. do your work here.
}
}
スレッドの実行状態をisRunning
で、作業状態をisWorking
で制御します。
関連する問題
- 1. アンドロイド:スレッド
- 2. アンドロイド - whileループのスレッド
- 3. アンドロイド、スレッド - ハンドラ/ asynctask
- 4. アンドロイド - ProgressDialogsとスレッド
- 5. アンドロイド:java.lang.OutOfMemoryErrorを:スレッドの作成が
- 6. C#のアンドロイドISurfaceTextureListenerスレッドは活性が
- 7. スレッド付きのアンドロイドのプログレスバー
- 8. スレッドのアンドロイド待機アクティビティ
- 9. アンドロイド:新しいスレッドのNetworkOnMainThreadException?
- 10. アンドロイド:progressBarとsetcurrentTabのスレッド
- 11. アンドロイド:なぜそれがUIスレッド
- 12. アンドロイド:java.lang.IllegalArgumentExceptionが:悪い会話スレッドID:15555215554
- 13. アンドロイドで検索、スレッド、MySQLを
- 14. スレッドの内部スレッドからアンドロイドのアクティビティを開始します。
- 15. アンドロイドの活動は、非スレッドから
- 16. アンドロイドNullポインタ例外スレッドの問題
- 17. アンドロイド:活動のないサービスとスレッド
- 18. アンドロイドのUIが別のスレッドから変更される
- 19. メッセージがアンドロイドのスレッドに送信されない
- 20. アンドロイド - メソッドが</p> <p>[UIスレッドでの問題が解決される] UIスレッド
- 21. はrunOnUiThreadがアンドロイドに新しいスレッドを作成します
- 22. アンドロイドのSMSアプリのスレッドIDの使用方法
- 23. アンドロイドの2つの異なるスレッドでカメラを使用する
- 24. 1つのスレッドと2つのアクティビティ(アンドロイド)間でデータを送信
- 25. スレッド対ハンドラ対アンドロイドのソケットの非同期タスク?
- 26. アンドロイドの別のスレッドからuiを更新する
- 27. アンドロイド - スレッドの問題(条件が二倍に達している)プログレスバー
- 28. アンドロイドは、新しいスレッドが30秒で実行される場合は古いスレッドを停止します。
- 29. スレッドは、アンドロイド4.0.3のバージョンでエラーを返します
- 30. アンドロイドonPause:なぜ、すべてのスレッドを停止しますか?
startThreadに開始を入れたくない理由は、そのスレッドを複数回呼び出す必要があり、開始が既に開始されているためです。関数startThreadは単に変数を変更してスレッドが再び開始するようにするか、それが達成したいものです。それを行うためのより良い方法はありますか?非常に多くのアクションの再起動のタイプのように.... –
@ジョンスミス、私の編集された答えを参照してください。 – neevek
私の主な関心事は、なぜ私のコードはそれが意味することをやっていないのですか?あなたがこのコードを実行するときのように、それはやるべきことをしません、なぜですか?ボタンを使ってUIを構築しようとしていないのですが、そのボタンをクリックすると、変数をtrueに変更してスレッドを実行させるはずです...しかし、スレッドは実行されません。なぜですか? –