私はarduino powered bluetooth LEDマトリックスを制御できるようにSDKデモからbluetoothチャットの例を変更しました。チャットプログラムを使用して、ブルートゥースを介してディスプレイにメッセージを送信できます。私は問題がある。私は2つの画面レイアウト、肖像画と風景をしました。こうすることで、向きにかかわらず、インターフェイスが電話機のスペースを最大限占有できるようになります。Android:スクリーンローテーション、破壊とサービスのコンンダムダム
問題は、電話機を回転させて新しいレイアウト(横向きまたは縦向き)を再読み込みするときに、OnDestroy()が呼び出されることです。それが確立されている場合OnDestroy()ルーチンでは、私はまた、ブルートゥースリンクを破棄:configChanges:ここでの他の記事を読む
public void onDestroy() {
super.onDestroy();
// Stop the Bluetooth chat services
if (mChatService != null)
mChatService.stop();
if (D)
Log.e(TAG, "--- ON DESTROY ---");
}
が、私はあなたが」アンドロイドを加えることによって停止されてからサービスを防止することができることを発見しました= "orientation" "をマニフェストに渡します。これを行うと、画面を回転させると、ディスプレイへのBluetoothのリンクは終了しなくなりましたが、画面はランドスケープモードで再描画されません。
これを修正するには、接続を終了する「if mchatservice ...」セクションを削除することを考えていますが、アプリケーションが最終的に終了したときに実行するコードが必要になります。
接続を終了せずに回転したときに画面を再描画する方法はありますか?もしそうでなければ、私はいつでもサービスコードをOnPause()イベントに移すことができると思うが、アプリがforgroundフォーカスを失うと接続が終了する。
他の方法はありますか?
ありがとうございました。
素晴らしいです。私はちょうどグーグルで1時間の検索をした後に何か似たものを見つけましたが、あなたの答えはより詳細です(ロギングに役立ちます): 'setContentView(R.layout.main);' ありがとう! –