2012-02-08 4 views
2

나는 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 포커스를 잃어 버리면 연결이 종료됩니다.

다른 방법이 있습니까?

감사합니다.

답변

9

당신은 추가하는 경우 "안드로이드 : configChanges ="으로 방향을 "의"파괴되고 다시 생성, 당신은 방법을 구현 할 수 있습니다에서 활동을 방지하기 위해 매니페스트 :이 방법은 실행

public void onConfigurationChanged(Configuration newConfig) 

을 시스템 구성이 변경 될 때마다, 즉 전화기를 회전하고 방향이 변경 될 때마다. 이 방법의 내부에서 당신은 당신의 활동에 대한 새로운 레이아웃을 다시 적용 할 수 있습니다 : 당신은 API와 장치를 구축하는 경우, 대답을

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     Log.e(TAG, "ORIENTATION_LANDSCAPE"); 
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
     Log.e(TAG, "ORIENTATION_PORTRAIT"); 
    } 
} 
+0

신난다. 방금 Google에서 한 시간 씩 검색 한 후 비슷한 것을 발견했지만 답변이 더 자세히 작성되어 로깅에 도움이되었습니다. setContentView (R.layout.main); Thanks! –

0

이 작업을 수행하기 위해 권장되는 방법은 당신의 논리를 취급 TaskFragment을 가지고 있으며, 여기 android:configChanges="orientation|screenSize"

세부 사항 : 레벨 13 이상, 다음과 같은 방법으로 화면 크기 속성을 추가하는 것을 잊지 마세요 UI에 동기화 할 수 있습니다.

더 자세한 설명은 다음 사이트를 참조하십시오 : http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html