/** * Restart the activity and discard old backstack, creating it new from the heirarchy in the manifest */ protected void restartActivityInvalidateBackstack(AnkiActivity activity) { Timber.i("AnkiActivity -- restartActivityInvalidateBackstack()"); Intent intent = new Intent(); intent.setClass(activity, activity.getClass()); TaskStackBuilder stackBuilder = TaskStackBuilder.create(activity); stackBuilder.addNextIntentWithParentStack(intent); stackBuilder.startActivities(new Bundle()); activity.finishWithoutAnimation(); } }
if (method.getReturnType().equals(TaskStackBuilder.class)) { taskStackBuilder = (TaskStackBuilder) method.invoke(c, activity); if (taskStackBuilder.getIntentCount() == 0) { return createResultAndNotify(activity, false, uri, entry.getUriTemplate(), "Could not deep link to method: " + entry.getMethod() + " intents length == 0"); newIntent = taskStackBuilder.editIntentAt(taskStackBuilder.getIntentCount() - 1); } else { newIntent = (Intent) method.invoke(c, activity); if (method.getReturnType().equals(TaskStackBuilder.class)) { taskStackBuilder = (TaskStackBuilder) method.invoke(c, activity, parameters); if (taskStackBuilder.getIntentCount() == 0) { return createResultAndNotify(activity, false, uri, entry.getUriTemplate(), "Could not deep link to method: " + entry.getMethod() + " intents length == 0"); newIntent = taskStackBuilder.editIntentAt(taskStackBuilder.getIntentCount() - 1); } else { newIntent = (Intent) method.invoke(c, activity, parameters); taskStackBuilder.startActivities(); } else { activity.startActivity(newIntent);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(BigPictureSocialMainActivity.class); stackBuilder.addNextIntent(mainIntent);
/** * Show notification * * @param mId Notification Id */ @SuppressWarnings("SameParameterValue") private Notification showNotification(int mId) { if (Logger.DEBUG) { Log.d(TAG, "[showNotification " + mId + "]"); } final String channelId = String.valueOf(mId); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { createNotificationChannel(channelId); } NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, channelId) .setSmallIcon(R.drawable.ic_stat_notify_24dp) .setContentTitle(getString(R.string.app_name)) .setPriority(NotificationCompat.PRIORITY_HIGH) .setCategory(NotificationCompat.CATEGORY_SERVICE) .setContentText(String.format(getString(R.string.is_running), getString(R.string.app_name))); Intent resultIntent = new Intent(this, MainActivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(MainActivity.class); stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent); Notification mNotification = mBuilder.build(); mNotificationManager.notify(mId, mNotification); return mNotification; }
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context); stackBuilder.addNextIntent(tapActionIntent); PendingIntent tapActionPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(BigPictureSocialMainActivity.class); stackBuilder.addNextIntent(mainIntent);
iOpenActivity.putExtra("player", notificationPlayer.getPlayer()); PendingIntent piOpenActivity = TaskStackBuilder.create(context) .addParentStack(MprisActivity.class) .addNextIntent(iOpenActivity) .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
private Notification buildNotification(Event event) { PendingIntent eventPendingIntent = TaskStackBuilder .create(this) .addNextIntent(new Intent(this, MainActivity.class)) .addNextIntent( new Intent(this, EventDetailsActivity.class) .setData(Uri.parse(String.valueOf(event.getId()))) .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(InboxMainActivity.class); stackBuilder.addNextIntent(mainIntent);
public static void navigateUp(Activity activity, Bundle extras) { Intent upIntent = NavUtils.getParentActivityIntent(activity); if (upIntent != null) { if (extras != null) { upIntent.putExtras(extras); } if (NavUtils.shouldUpRecreateTask(activity, upIntent)) { // This activity is NOT part of this app's task, so create a new task // when navigating up, with a synthesized back stack. TaskStackBuilder.create(activity) // Add all of this activity's parents to the back stack. .addNextIntentWithParentStack(upIntent) // Navigate up to the closest parent. .startActivities(); } else { // This activity is part of this app's task, so simply // navigate up to the logical parent activity. // According to http://stackoverflow.com/a/14792752/2420519 //NavUtils.navigateUpTo(activity, upIntent); upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); activity.startActivity(upIntent); } } activity.finish(); }
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(MessagingMainActivity.class); stackBuilder.addNextIntent(notifyIntent);
public static boolean performFinishActivity(Activity activity, boolean forceNavigateUp) { if (activity == null) { return false; } boolean hasParent = activity.getIntent().getBooleanExtra(Constants.EXTRA_HAS_PARENT, false); if (forceNavigateUp || !hasParent) { Intent upIntent = NavUtils.getParentActivityIntent(activity); if (upIntent != null) { if (!hasParent) { upIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); } if (NavUtils.shouldUpRecreateTask(activity, upIntent)) { TaskStackBuilder.create(activity) .addNextIntentWithParentStack(upIntent) .startActivities(); } else { activity.startActivity(upIntent); } } } activity.finish(); return true; }
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(MessagingMainActivity.class); stackBuilder.addNextIntent(notifyIntent);
void navigateUp() { // Navigate up to the track associated with this event Intent upIntent = new Intent(this, TrackScheduleActivity.class); upIntent.putExtra(TrackScheduleActivity.EXTRA_DAY, event.getDay()); upIntent.putExtra(TrackScheduleActivity.EXTRA_TRACK, event.getTrack()); upIntent.putExtra(TrackScheduleActivity.EXTRA_FROM_EVENT_ID, event.getId()); if (NavUtils.shouldUpRecreateTask(this, upIntent)) { TaskStackBuilder.create(this) .addNextIntentWithParentStack(upIntent) .startActivities(); finish(); } else { // Replicate the compatibility implementation of NavUtils.navigateUpTo() // to ensure the parent Activity is always launched // even if not present on the back stack. upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(upIntent); finish(); } }