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
ます。ただし、現時点では回避方法がわかりません。