protected void displayNotification(String response) {
Intent intent = new Intent(context, testActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
Notification notification = new Notification(R.drawable.icon, "Upload Started", System.currentTimeMillis());
notification.setLatestEventInfo(context, "Upload", response, pendingIntent);
nManager.notify((int)System.currentTimeMillis(), notification);
}
この関数は複数回呼び出されます。notificationクリックすると、それぞれがtestActivityを起動したいと思います。残念ながら、最初の通知のみがtestActivityを起動します。残りをクリックすると、通知ウィンドウが最小化されます。
追加情報:関数displayNotification()はUploadManager。というクラスにあります。 インスタンス化ContextするUploadManagerからに渡されactivityます。関数displayNotification()は、UploadManagerでも、で実行されている関数から複数回呼び出されますAsyncTask。
編集1:文字列応答をIntent intentとしてに渡していることを忘れましたextra。
protected void displayNotification(String response) {
Intent intent = new Intent(context, testActivity.class);
intent.putExtra("response", response);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
通知が作成されたときの文字列応答を反映するために追加の「応答」が必要になるため、これは大きな違いになります。代わりに、を使用するPendingIntent.FLAG_UPDATE_CURRENTと、追加の「応答」は、への最後の呼び出しでの文字列応答を反映しdisplayNotification()ます。
のドキュメントを読んだことで、これがなぜなのかわかりFLAG_UPDATE_CURRENTます。ただし、現時点では回避方法がわかりません。