これを検索する方法が本当にわかりませんでした...
ステータスバーに通知を表示するためにジョブがキューに追加またはキューから削除されるたびに呼び出される次のものがあります。
private void showNotification()
{
int jobsize = mJobQueue.size();
int icon = (jobsize == 0) ?
Android.R.drawable.stat_sys_upload_done :
Android.R.drawable.stat_sys_upload;
Notification notification =
new Notification(icon, "Test", System.currentTimeMillis());
Intent intent = new Intent(this, FileManagerActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
notification.flags =
(Notification.FLAG_SHOW_LIGHTS | Notification.FLAG_AUTO_CANCEL);
notification.setLatestEventInfo(this,
"Uploading to our servers",
getString((jobsize > 0) ?
R.string.notification_active_transfers :
R.string.notification_no_transfers),
pendingIntent);
mNotifyManager.notify(NOTIFICATION, notification);
}
現在の動作は次のとおりです。
ユーザーがログアウトして通知を押すと、新しいFileManagerActivityが開きます(ops!)認証アクティビティから開始し、アプリケーションが既に存在する場合は、自然な順序でスタックにインテントを渡すことで、これを回避できます。ランニングは私が苦労しているところです。
ユーザーがすでにFileManagerActivityを開いている場合は、通知をクリックすると、その上に2番目のインスタンスが配置されます。この場合、現在実行中のFileManagerActivityが、新しいインスタンスを起動するのではなく、フォーカスを受け取るようにします。
どうすれば正しい動作を得ることができますか?
これらを追加するとうまくいったと思います:
intent.setAction(Long.toString(System.currentTimeMillis()));
保留中のIntent.FLAG_UPDATE_CUR
Intent intent = new Intent(context, MyOwnActivity.class);
intent.putExtra("foo_bar_extra_key", "foo_bar_extra_value");
intent.setAction(Long.toString(System.currentTimeMillis()));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent,PendingIntent.FLAG_UPDATE_CURRENT);