2013-12-13 2 views
0

서버에서 무언가 데이터를 다운로드하고이 데이터를 성공적으로 다운로드 할 때마다 알림을 보내는 앱을 개발 중입니다. 또한 사용자가 알림을 열거 나 삭제 한 경우 통계를 보내야합니다. 사용자가 알림을 열었 으면 간단히 보내기 만하면됩니다. 그냥 부울 키를 의도에 추가하면 활동에서이 키로 "보내기"코드를 실행합니다. 하지만 다른 사용자 행동은 어떨까요? 알림을 삭제하십시오. 여기에 내 문제가 간다. 나는 사용자가 알림을 삭제 한 시점을 어떻게 알 수 있습니까?사용자가 알림을 삭제 한시기를 알아 보는 방법

답변

1

확인 :

Intent deleteIntent = new Intent(context, SomeActivity.class); 
PendingIntent pendingDialog = PendingIntent.getActivity(context, 0, deleteIntent, 
       PendingIntent.FLAG_UPDATE_CURRENT); 

Notification notification = new NotificationCompat.Builder(context) 
    .setContentTitle(context.getString(R.string.title)) 
    .setContentText(context.getString(R.string.content)) 
    .setSmallIcon(R.drawable.image) 
    .setContentIntent(clickIntent) // executed if clicked 
    .setDeleteIntent(deleteIntent) // executed if deleted 
    .addAction(R.drawable.action_image, // adds a button 
      context.getString(R.string.do_it), actionIntent); 

보류 의도도 (documentation 확인)뿐만 아니라 Broadcasts 수 있습니다.

건배!

+0

감사합니다. 이제는 완전히 얻었습니다. 서비스가 있고 "전송"코드를 호출 할 때 브로드 캐스트 리시버를 추가 할 것입니다. – whizzzkey

1

사용자가 알림을 삭제 한 시점을 어떻게 알 수 있습니까?

setDeleteIntent() on your Notification.Builder을 사용하십시오. 이 예제 밖으로

+0

실례합니다. 내 어리 석음 때문에 실례합니다. 나는 몰랐다. 나는이 의도를 어디로 보내야 하는가? 내 활동에? 하지만 사용자가 알림을 삭제 한 후에도 그 이후에 아무 것도 보여주고 싶지는 않습니다. Helper.class에서 "통계 보내기"코드를 실행하고 싶습니다. – whizzzkey

+0

@whizzzkey : 'PendingIntent'는 활동을 시작하거나, 서비스에 명령을 보내거나, 브로드 캐스트를 보낼 수 있습니다. 귀하의 경우, "통계 전송"에 디스크 또는 네트워크 I/O가 관련되어있는 경우, "통계를 전송하는"IntentService에 명령을 전송하는 것이 유력한 후보로 보입니다. – CommonsWare

관련 문제