Android 용 알람 시계와 같은 기능을 갖춘 앱을 만들려고합니다. 선택한 시간에 사용자에게 알립니다. 알림 화면이 나타나면 사용자는 알림을 보내거나 스누즈 할 수있는 옵션이 있으며 앱에서 알림을 누른 다음 닫습니다.finish() 후 앱이 닫히지 않습니다.
그러나 알림 또는 알림 버튼을 클릭하면 앱이 닫히지 않았습니다. 대신 앱이 알람 소리를 중지하고 최소화합니다 (사용자가 홈 버튼을 터치 할 때와 마찬가지로). 최근 앱을 터치하면 알림 화면을 다시 열 수 있습니다.
편집 : System.exit() 또는 killProcess와 같은 코드가 있으므로 코드를 권장하지 않으므로 사용하지 않는 것이 좋습니다. 내가 묻는 이유는 내 휴대 전화 (4.3)와 함께 제공되는 실제 시계 앱을 테스트했기 때문에 내가 잠자기를 누르거나 버튼을 닫은 후에 알림 화면이 닫히기 때문입니다. 그래서 저도 똑같이 할 수있는 방법이 있어야합니다, 그렇죠?
대답 Sagar Pilkhwal 아래에 설명 된대로 그렇게, 그리고 다른 관련 문제를 읽은 후, 나는 코드로 응용 프로그램을 닫으려면 더 "좋은"방법이 없다는 것을 발견, 좋아 , 당신은 사용자에게 해당 옵션을 떠날 필요가 또는 OS. System.exit이나 killProcess를 사용하고 싶지 않다면 앱을 강제 종료하는 나쁜 방법입니다.
Sagar Pilkhwal도이 문제에 대한 대안 방법이 있습니다. 최근 앱에서 알림 화면을 표시하지 않으려면 다른 활동을 불러 오십시오.
그러나이 경우와 Alarm Manager 일반적으로 MainActivity는 Alarm 이벤트를 처리 할 때 MainActivity가 열려 있기 때문에 열려있는 MainActivity가 문제가 될 수 있습니다. 그 때 나는 당신이 당신의 경고 화면이 최근의 응용 프로그램에 표시하지 않으려면, 단순히 매니페스트에 Alert.class 활동에
android:excludeFromRecents="true"
를 추가하거나 시작하는 데 사용 의도에 Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
를 추가, 다른 해결책을 발견 Alert.class.
사용자가 홈 버튼을 누르면 알람이 꺼지지 않고 사용자가 알림 화면에 액세스하기 위해 최근 앱을 열 수 없기 때문에 다른 문제가 발생합니다. 앱). 홈 버튼 눌림 이벤트를 감지하여이 문제를 해결합니다. 세부 답변은 아래와 같습니다.
은 [최소한의 완전하고 검증 예]를 고려해보십시오 (http://stackoverflow.com/help/mcve). 이것은 많은 코드이며 문제를 재현하는 데 필요한 모든 것이 아닙니다. 프로그래밍 한 언어와 프로그래밍 할 장치를 포함하면 도움이됩니다. –
감사합니다. 코드를 편집하고 제거했습니다. 나머지 부분은 문제와 관련이 있는지 없는지 (내가이 질문을하지 않을 것이라는 것을 알고 있다면) 안전하지 않기 때문에 계속 유지합니다. – Usin2705