마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 전역변수에 대해서

0 추천
TapLayout을 통해 Tab버튼 터치시 하나의 Activity에서 여러 Fragment를 교차하며 화면을 전환하게 만들었습니다  onTabSelected( )함수에서 FragmentTransaction객체를 사용하기 위해 전역 변수로 FragmentTransaction를 선언후 onCreate( )함수에서 전역변수에 FragmentTransaction객체를 담아  onTabSelected( )함수에서 사용했는데 실행을 하면 탭 터치시 앱이 중지 되네요..

왜 그런건지 이유 알려주시면 감사하겠습니다!
songjae5426 (1,800 포인트) 님이 2023년 2월 2일 질문

1개의 답변

0 추천
 
채택된 답변
FragmentManager.beginTransaction()을 하게 되면 FragmentTransaction 가 리턴됩니다. 이건 global 범위의 동작이 아니고 해당 동작이 일어나는 범위에만 유효한 데이터입니다(transaction의 의미를 떠올려 보세요). commit이 발생한 후 또는, 해당 액티비티가 종료된 후에는 사용할 수 없으므로, 이런 데이터는 global로 공유하시면 곤란하겠죠. 왜 global scope으로 처리하려고 하는지 모르겠지만, 분명 해당 동작이 필요한 곳에서만 처리하도록 변경이 가능하실테니, 그렇게 구조를 변경하세요.
spark (226,420 포인트) 님이 2023년 2월 2일 답변
songjae5426님이 2023년 2월 3일 채택됨
...