Android用に開発が始まったところです。私はSurfaceViewを使ってシンプルな図形を描画するアプリケーションを作ろうとしましたが、メニューイベント(サーフェスは常に無効です)に基づいて動作させることができませんでしたのでスレッドを実装することにしました。問題は、浮遊スレッドの実行を止める方法を見つけることができないということです。私は、デバッグモードでアプリケーションを起動し、スレッドを開始するメニュー項目を選択しました。その後、私はエミュレータのインターフェイス上の戻るボタンを押してアプリケーションから抜け出しました。しかし、スレッド上の私のブレークポイントはヒットを続けた。そこで、エミュレータのアプリケーションリストでアプリケーションをクリックしてアプリケーションに戻り、スレッドを停止するコマンドを選択しました。しかし、それはスレッドが実行されていることを検出しませんでした - それは別のアプリケーションインスタンスでした。Androidアプリケーションの迷子スレッド
私の主な質問の下には、「どうやってアンドロイドアプリケーションのスレッドのシャットダウンを最も確実に処理する必要がありますか?」という微妙な質問があります。
- 元のインスタンスにアクセスできますか?
- 私が戻ったとき元のインスタンスを取得する必要がありますか?
- デバッガを起動せずにアプリケーションメニューから選択すると、元のインスタンスの可視性に影響しますか?
- アクティビティ/アプリケーションを終了することはできますか?
- デバッガ(Eclipse)はデバイス全体をリセットせずに何とか停止することができますか?
- メニューイベント中にコンテキストをロックしようとするのではなく、SurfaceViewにスレッドが必要ですか?
私はClose application and launch home screen on Androidを見ましたが、アプリケーションを終了するべきではないことを示唆しているため、何をすべきかわかりません。
Android SDKで提供されるサンプルは悪いですか?私は、Lunar Landerのサンプルを見ています。SurfaceViewを備えた単純なスレッドを使用しています。 – BlueMonkMN
http://developer.android.com/resources/articles/painless-threading.htmlはおそらくあなたがチェックアウトしたいものです。 –
intro段落によると、この記事はUIを操作するワーカースレッドの長時間実行ですが、SurfaceViewにグラフィックスを描画する方法を理解しようとしていますが、これはスレッドに依存するようですが、ワーカースレッド私はUIのやりとりを考えていません。私は髪を分割していますか? – BlueMonkMN