からのactivity
が届きましたので、notification
が届きます。 notification
を押すとactivity
が起動します。 back-stack
に以前のactivities
がない場合、または特定のもののみがある場合は、その特定のactivity
を削除して、そこに新しいアクティビティであるactivity
を挿入します。通知から活動を開始した後の主な活動に戻る
このThreadが見つかりましたが、2つのインテントとフラグでどのように処理するのか分かりません。
すなわちintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK)
、それはそれを彼がそれをやったか、私はそのためのアクティビティスタックを編集する必要があります方法を行うことが賢明ですか?
私はかなりAndroidの開発者です。だから、いくつかのアドバイスが私を助けてくれました。 ありがとう;)
更新:私はstackbuilderを使用していましたが、何とか設定されていません...私のエラーは見つかりませんでした。ブーリアンのnoActivityは確かに設定されていますが、スタックが実際にそこに以前のアクティビティをどのように置いているのか誤解しました。
private void sendNotification(messageType type, Map<String, String> data, boolean noActivities) {
Intent i;
String message = "";
switch (type) {
case newFOLLOWER:
User cur = new User(data.get("other.name"));
User.lookAT = User.getOtherUserByName(cur);
i = new Intent(this, other_profile.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
message = data.get("other.name") + " is following you now. Click to see his profile";
i.putExtra("Notification", data.get("other.name") + " is following you now. Click to see his profile");
break;
default:
i = null;
break;
}
if (i != null) {
TaskStackBuilder stack = TaskStackBuilder.create(this);
if(noActivities){
stack.addParentStack(Photostream.class);
}
stack.addNextIntent(i);
PendingIntent pendingIntent = stack.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);//PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_ONE_SHOT);
Uri defaultSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("PIC LOC")
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSound)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
}
アップデート2:だから、非常に多くのことを検索した後、私は、スタックビルダーがどのように機能するかmissunderstoodことが分かりました。追加の仕組みを説明した別のスレッドが見つかりました。 Editing the Manifest in order to have a previous stack。