카테고리 없음

코딩 android PackageManager를 이용해서 다시 보이지 않는 화면 만들기

abc0123 2018. 1. 19. 12:39
반응형

 

지난 글에서는 android App의 시작과 동시에 1~2초 동안만 잠시 보이다가 사라지는 Intro에 대한 내용을 코딩 해봤었는데요. 오늘은 안드로이드 앱을 실행할 때 체크를 하면 다시는 보이지 않는 화면을 만드는과정을 공부하면서 코딩해볼까 합니다.

 

글로 설명하기가 조금 난해한 면이 있기는 하지만 android 공부하면서 관심을 갖고 제목으로 찾아서 이 글을 보고 계신다면 어떤 내용인지 대충 아실 거예요. 왜 그런 거 있잖아요? 앱을 실행하면 그 앱의 사용방법이나 공지 등을 화면에 표시하고 그 아래쪽에 작은 체크박스가 있어서 그걸 선택하면 다음부터는 전혀 보이지 않는 화면이요. 그걸 만들어보자는 것입니다.

 

이번 코딩은 지난 글에서 만들었던 프로젝트에 이어서 작성할게요. 저번에 1.5초 동안 '로고'등이 보이다가 자동으로 사라지는 Intro 화면과 Main 화면을 만들었었고.....

 

 

 

 

이번에는 공지사항이나 사용방법 등을 알려줄 화면을 하나 더 만들겠습니다.

 

액티비티 만들기

▲ App을 오른쪽 마우스 클릭해서 [New > Activity > Empty Activity]를 순서대로 선택하고요.

 

체크박스

▲ Activity 이름은 CheckActivity로 설정했습니다.

 

공지사항

▲ 그리고 화면에 공지사항이라는 문자열과 다음부터는 보이지 않도록 선택할 체크박스를 하나 배치했고 Main& 화면으로 가기 위한 Button까지 하나 넣었습니다. 이제 앱을 시작하면 앞에서 봤던 Intro 화면이 나타났다가 사라지면서 이 화면이 보이게 되고 저 체크박스를 체크하면 다시는 보이지 않도록 변경해볼게요. 물론 체크박스를 선택하지 않으면 다음에 앱을 실행할 때도 이 화면은 다시 나타나겠죠?

 

여하튼 이번 글에서는 이 화면이 한 번만 보이고 다음부터는 보이지 않도록 하는 과정을 살펴볼 텐데요. 그러기 위해서 기존에 Intro 화면에 Main 화면으로 화면전환이 되던 Intent를 변경해줘야겠네요.

 

인텐트 변경

▲ IntroActivity의 Intent를 Main에서 새로 만든 CheckActivity로 바꿔줬습니다. 그리고 CheckActivity에서도 Main으로 넘어가는 Intent를 설정해줘야겠네요.

 

 

매인으로

▲ 두 번째 화면에 버튼을 누르면 Main 화면으로 이동하도록 Intent 설정을 했습니다. 여기까지 만든 후 앱을 실행해서 결과를 확인해볼게요.

 

▲ 영상처럼 처음에 Intro 화면이 잠깐 나타났다가 사라지고 Check 화면에서 건너뛰기 버튼을 누르면 Main으로 이동하는 걸 확인할 수 있습니다. 이제 두 번째 화면에서 체크박스를 선택하면 다음부터는 이 화면이 보이지 않도록 설정을 해보겠습니다.

 

package

▲ 체크박스 객체를 찾아서 setOnCheckedChangeListener를 이용해서 만약에 체크가 되어 있다면(isChecked) Package 매니저를 이용해서 이 액티비티를 보이지 않도록 한 내용입니다. 그리고 마지막 파라미터는 DONT_KILL_APP을 줘야 앱이 종료되지 않습니다. 다른 값을 주게 되면 Main으로 넘어가지 못하고 앱이 종료되어버리니 참고하시고요.

 

 

이제 마지막으로 Intro 화면에서 하나만 더 코딩하면 되겠네요. 어떤 내용일까요? 만약에 Check 화면에서 박스가 선택되어서 PackageManager에 의해서 이 액티비티가 보이지 않게 된다면 바로 Main으로 뛰어넘어서 화면전환이 되도록 해야겠죠? 바꿔보겠습니다.

 

안드로이드 화면 전환

▲ 내용은 특별할게 없습니다. 처음 앱이 실행되면 이 화면(Intro)이 나타나고 여기서 PackageManager를 불러와서 다음 화면인 CheckActivity의 상태를 따져본 후 만약 체크가 되어 있다면(COMPONENT_ENABLED_STATE_DISABLED) 바로 Main 화면으로 넘어가고 그렇지 않으면 다시 체크 화면으로 넘어가도록 하는 내용입니다. 이제 다시 앱을 실행해서 결과를 확인해볼게요.

 

 생각보다 간단하죠?^^ 이렇게 해서 선택에 따라서 다시는 보이지 않는 화면을 공부하면서 코딩을 해봤습니다. 수고하셨어요.

반응형