나는 arduino powered bluetooth LED 매트릭스를 제어 할 수 있도록 SDK 데모에서 블루투스 채팅 예제를 수정했습니다. 채팅 프로그램을 사용하여 블루투스를 통해 디스플레이에 메시지를 보낼 수 있습니다. 나는 문제가있다. 저는 두 가지 화면 레이아웃, 초상화와 풍경을했습니다. 이렇게하면 방향에 관계없이 인터페이스가 휴대 전화에서 가장 많은 공간을 차지하게됩니다.Android : 화면 회전, 파괴 및 서비스 connundrum
전화가 회전되면 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" "을 선언하십시오. 이렇게하면 화면을 회전 할 때 디스플레이에 대한 내 블루투스 링크가 더 이상 종료되지 않지만 화면이 가로 모드로 다시 그려지지 않습니다.
이 문제를 해결하려면 연결을 종료하는 "if mchatservice ..."섹션을 제거하려고합니다.하지만 응용 프로그램이 궁극적으로 종료 될 때 실행되는 코드가 필요합니다.
연결을 종료하지 않고 회전 할 때 화면을 다시 그릴 수있는 방법이 있습니까? 그렇지 않은 경우 서비스 코드를 OnPause() 이벤트로 항상 이동할 수 있다고 생각합니다. 그러나 앱이 forground 포커스를 잃어 버리면 연결이 종료됩니다.
다른 방법이 있습니까?
감사합니다.
신난다. 방금 Google에서 한 시간 씩 검색 한 후 비슷한 것을 발견했지만 답변이 더 자세히 작성되어 로깅에 도움이되었습니다. setContentView (R.layout.main); Thanks! –