2014-12-12 1 views
1

내 앱에서는 사용자가 떠나는 경우에만 하나의 인스턴스 만 허용하고 finish은 허용하는 Activity이 있습니다. 지금 사용자가 뒤로 단추를 누르거나 탐색 서랍을 사용하여 다른 곳으로 이동하고 탐색하면 해당 활동을 끝내거나 변경 사항을 저장 한 다음 끝내라고 요청합니다.알림에서 실행중인 앱을 입력 할 때 현재 활동을 완료하는 방법

사용자가 앱을 입력하고 푸시 알림 데이터에 표시된 기록에 해당 활동을 열 수있는 푸시 알림을 구현 중입니다. 그러나 앱이 이미 실행 중이고 사용자가 이미 해당 활동을 열어 놓은 경우 새 인스턴스를 열기 전에 변경 사항을 저장하거나 활동을 마치도록 사용자에게 요청할 수 있습니까? 나는 이것을 정확하게 생각하고 있는가?

편집 : 여기 내 BroadcastReceiver에서 만드는 PendingIntent입니다.

private PendingIntent buildPendingIntent(String type, String number) 
{ 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(mContext); 

    Intent homeIntent = new Intent(mContext, HomeActivity.class); 
    homeIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
    stackBuilder.addNextIntent(homeIntent); 

    Intent queueIntent = new Intent(mContext, QueueActivity.class); 
    queueIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
    queueIntent.putExtra(QueueActivity.TYPE, type); 
    stackBuilder.addNextIntent(queueIntent); 

    Intent detailIntent = new Intent(mContext, DetailActivity.class); 
    detailIntent.putExtra(DetailActivity.DETAIL_NUMBER, number); 
    detailIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    stackBuilder.addNextIntent(detailIntent); 

    return stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
} 

답변

1

당신은 Notification에서 Activity 열립니다 Intent에 플래그 Intent.FLAG_ACTIVITY_SINGLE_TOP을 추가 할 수 있습니다.

그런 다음 수행해야 할 작업을 Activity.onNewIntent(Intent) 방법으로 확인할 수 있습니다.

올바른 방향으로 안내해 주시기 바랍니다.

1

알림은 onNewIntent() 방법을 통해 내 활동을 "입력"합니다. 그래서 간단하게 조건을 만들고 알림에서 의도가 있는지 확인한 다음 그에 따라 반응하십시오 .-)

+0

이것은 올바른 해결책 인 것처럼 보이지만 스택의 일부로 활동을 시작합니다. FLAG_ACTIVITY_SINGLE_TOP 플래그는 새로운 작업 스택을 시작하기 때문에 아무 것도하지 않는 것 같습니다. 스택의 루트가 FLAG_ACTIVITY_REORDER_TO_FRONT로 설정 되었는데도 아무것도 수행하지 않습니다. – ashishduh

+0

내가 만들고있는 작업 스택으로 질문을 업데이트했습니다. – ashishduh

관련 문제