특정 상황에서는 신청서에 exit()
으로 전화해야합니다. (완료하는 가장 좋은 방법은 아니지만 질문이 아닙니다.) 또한 충돌에 대해 사용자에게 알려주는 새로운 대화 상자를 표시하려고합니다.새로운 활동이 시작되지 않는 경우가 있음
새 브로드 캐스트 리시버 인 새로운 활동 클래스를 생성하여 매니페스트에 등록했습니다. 다음으로, 전화 :
Intent intent = new Intent(this, AppCloseReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0);
try
{
pendingIntent.send();
}
catch(Exception ex){}
System.exit(0);
문제는 새 창이 때때로를 표시한다는 것입니다! 먼저 새로운 활동을 시작하기 전에 System.exit(0);
이 시작될 것이라고 생각했습니다. (비동기 호출로 인해 생각을 찾을 수 없습니다.) Thread.sleep(1000)
을 pendingIntent.send();
과 System.exit(0);
사이에 추가했습니다. 결과는 동일합니다 - 새 창이 가끔 나타납니다.. 로그에는 아무 것도 없으며 예외는 없습니다.
새로운 활동은 정적 텍스트 일뿐입니다.
이것은 절대적으로 신뢰할 수 없습니다. 'System.exit() '를 호출하면 기본적으로 VM이 종료됩니다. VM을 종료 할 때 어떤 일이 발생한다고 보장 할 수는 없습니다. UI에 아무것도 표시되지 않을 것입니다. 유스 케이스를 설명하고 대체 방법을 제안 할 수 있습니다. –
유스 케이스는 특정 조건에서 '종료'하고 응용 프로그램이 중지 된 이유를 사용자에게 알려주는 것입니다. 대안으로 나는 알림을 사용하고 있지만 사용자가 수동으로 닫을 때까지 기다려야하는 더 많은 지속성 솔루션을 원합니다. – nikitablack