알림에서 내 활동에 매개 변수를 보내는 방법을 찾을 수 있습니다.
알림을 생성하는 서비스가 있습니다. 사용자가 알림을 클릭하면 몇 가지 특수 매개 변수로 주요 활동을 열고 싶습니다. 예를 들어 항목 ID이므로 내 활동이 특수 항목 세부 정보보기를로드하고 표시 할 수 있습니다. 더 구체적으로, 나는 파일을 다운로드하고 있으며, 파일을 다운로드 할 때 클릭 할 때 내 활동을 특수 모드로 여는 의도를 갖기를 원합니다. putExtra
내 의도에 따라 사용하려고 시도했지만 추출 할 수 없으므로 잘못하고 있다고 생각합니다.
알림을 생성하는 서비스 코드 :
// construct the Notification object.
final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());
final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, tickerText);
contentView.setProgressBar(R.id.progress,100,0, false);
notif.contentView = contentView;
Intent notificationIntent = new Intent(context, Main.class);
notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notif.contentIntent = contentIntent;
nm.notify(id, notif);
알림에서 추가 매개 변수를 가져 오는 내 활동의 코드 :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle extras = getIntent().getExtras();
if(extras != null){
Log.i( "dd","Extra:" + extras.getString("item_id") );
}
엑스트라는 항상 null이며 로그에 아무것도 넣지 않습니다.
Btw ... onCreate
활동이 시작될 때만 실행됩니다. 활동이 이미 시작된 경우 추가 항목을 수집하고받은 item_id에 따라 활동을 제시하고 싶습니다.
어떤 아이디어?
PendingIntent.getActivity()
플래그 로 전화 해야합니다PendingIntent.FLAG_UPDATE_CURRENT
. 그렇지 않으면 모든 알림에 동일한 엑스트라가 재사용됩니다.