먼저, 내가 가지고있는 주된 질문에 도달하기 전에 먼저 내가 가진 상황을 설명하겠습니다. 첫째, 나는 내가 활동을 다루는 방식이 활동을 다루는 적절한 방법인지 알아 내고 싶다. 나는 이것이 문제가되는 방향으로 나아지지 않을 수도 있다고 생각한다.Android : 적절한 핸들링 방법
현재 3 가지 활동 설정이 있습니다. Main.class, Login.class 및 Display.class. Main 액티비티에는 이와 관련된 UI가 전혀 없으며 다른 액티비티를 시작합니다. 따라서 앱이 시작될 때 실행되는 첫 번째 활동은 기본 활동이며 SharedPreferences 상점에서 사용자가 로그인했는지 여부를 읽습니다. 로그인하지 않은 경우 로그인이 열립니다. 클래스에 로그인하면 Display.class가 열립니다 (둘 다 연관된 UI가 있습니다). startActivityForResult()를 사용합니다.
활동으로 작업하기로 결정했기 때문에 Login.class 및 Display.class에서 뒤로 버튼을 무시해야했습니다. 그렇지 않으면 Main.class로 돌아가 다시 실행됩니다. 실행중인 활동 순서. 실행중인 활동을 다시 시작합니다 (따라서 뒤로 버튼은 쓸모가 없습니다). 그래서, 나는 -1의 정수를 되돌려 보내고, 현재 활동을 끝내기 위해 뒤로 버튼을 무시했다. Main.class에 대해 onActivityResult (int, int, Intent)를 재정의하고 -1을 받으면 액티비티를 다시 시작하지 않고 finish()도 수행합니다.
자, 내가 그것을 원했던 방식으로, 비록 그것이 활동을 다루는 완전히 잘못된 방법이라는 생각이 들더라도, 그것은 나중에 트랙에 문제를 일으켰습니다.
내 응용 프로그램에서는 응용 프로그램 위젯과 알림을 넣기로 결정했습니다. 둘 중 하나를 클릭하면 (Main.class를 시작하는 의도를 통해) 응용 프로그램이 열립니다. 나는 새로운 활동을 시작하는 것이 문제를 일으키는 것처럼 보일지라도 그것이 그렇게 할 수 있도록 모든 일을해야한다.
기본적으로 응용 프로그램이 이미 실행 중이고 알림을 가져 와서 클릭하면 동일한 응용 프로그램의 새로운 활동이 열립니다. 이것은 문제가되는데, 특히 뒤로 버튼을 처리하는 방식에 문제가 있습니다. 새 버튼을 열었을 때 뒤로 버튼을 누르면 새 버튼이 닫히고 (예 : 예상대로) 이전 상태로 돌아갑니다. 그런 다음 뒤로 버튼을 다시 눌러 종료 할 수 있지만, 분명히 뒤로 버튼이 두 번 눌러야하는 앱을 출시하고 싶지 않습니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 문제의 주요 부분 인 경우 활동을 처리하는 방식을 완전히 바꿔 드리겠습니다.
감사합니다. Josh.
+1 다시 생각 해보는 방법에 대한 좋은 토론입니다. 나는 활동의 상단에 응용 프로그램 클래스를 가지고이 문제를 해결하려고합니다. 아래 예를 게시했습니다. – Aleadam