2014-02-12 3 views
0

나는 하나의 활동에서 사용자가 HOME 버튼을 누르면 알림이 나타납니다. 알림을 누르면 활동이 중단 된 지점에서 다시 시작됩니다. 문제는 매번 활동이 재 작성된다는 점입니다. onDestroy() 알림을 누르면 onCreate()이 호출됩니다. 하지만 "최근 앱"을 통해 활동을 다시 열면 성공적으로 다시 시작한다고 해봅시다.알림에서 안드로이드로 활동 재개

이 질문은 전에 stackoverflow에 요청되었으며 제공되는 답변을 시도했지만 그 중 아무 것도 작동하지 않는 것 같습니다. 내가 사용하는 API는 최신 4.4입니다. 내가 시도 옵션은 다음과 같습니다

  • 는 텐트 플래그

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);

  • 난을 모방 할 수 어떻게 singleInstance로 활동하고 singleTask

설정으로 주위 재생 '최근 앱'을 통해 내 활동을 열 때 보내지는 의도?

편집 : 중요한 추가 정보가 하나 더 있습니다. 내 프로그램 A B C에는 3 가지 활동이 있습니다. 런처 아이콘 활동 A를 처음 클릭하면 시작됩니다. 알림은 활동 C에서 홈으로 이동하는 경우에만 생성됩니다. 활동 C를 재개하려고합니다.

답변

0

문제가 해결되었습니다.

LogCat을 통해 응용 프로그램을 디버깅하고 ActivityManager에 의해 생성 된 인 텐트를보고있었습니다. Intent의 플래그를 변경할 때마다 LogCat의 변경 사항을 볼 수 없습니다. 그래서

02-12 11:26:39.586: I/ActivityManager(766): START u0 {flg=0x1000c000 cmp=com.example.app/.controllers.Activity3 bnds=[0,153][1080,345]} from pid -1

변경 텐트 플래그는 로그에 FLG 변수를 변경하지 않았다. 이 외에도 상태 표시 줄에 알림 이미지가 남아 있었고 내 앱이 알림을 파괴하지 않았습니다. 이 제거되고 있지 않았다,

Intent intent = new Intent(this, Activity3.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, 
      intent, PendingIntent.FLAG_CANCEL_CURRENT); 
    mBuilder.setContentIntent(pendingIntent); 

그래서 문제가 내가 전에 작성해야합니다 잘못된 PendingIntent을했다 : 내가 한 일은 내가 전송 된 PendingIntent에 PendingIntent.FLAG_CANCEL_CURRENT 플래그를 추가했다. 이제 알림을 클릭하여 활동을 재개 할 수 있습니다. 희망이 비슷한 문제를 가진 사람을 도울 수 있기를 바랍니다.

관련 문제