Webview сохраняет старый URL при каждом вызове - PullRequest
2 голосов
/ 25 января 2012

Я использую сервис C2Dm для отправки уведомлений в мое приложение.У меня есть действие, которое состоит только из некоторых элементов корпоративного дизайна и веб-просмотра.

Когда я впервые запускаю свое приложение и отправляю URL-адрес на устройство, пользователь получает уведомление в панели уведомлений.Если он нажимает на уведомление, я создаю PendingIntent, чтобы начать веб-просмотр.

До этого все в порядке.Но приложение продолжает открывать первый URL, полученный с помощью сообщения C2DM, и никогда не отображает новый URL.Сам URL передается через дополнительный пакет.

Итак, вот код для создания ожидающего намерения уведомления:

    Intent intent = WebviewActivity.asIntent(context, getUrlWithAttachedAccesskey(notification.getUrl()), new Bundle()); // just a static method to wrap the bundle correctly
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    Notification notification = new Notification(R.drawable.appiconmenu, message, System.currentTimeMillis());
    PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent, 0);

    notification.setLatestEventInfo(context, title, message, pIntent);
    notificationMan.notify(getNextNotificationId(), notification);

На сайте WebviewActivity код выглядит так:

    Intent intent = getIntent();
    Bundle extras = intent.getExtras();

    if(extras != null) {
        String url = intent.getExtras().getString(DESTINATION_URL);     
        Log.i(TAG, "Loading url: " + url);
        wbVwBrowser.loadUrl(url);
    }

Что-то не так с моим намерением?Должен ли я назвать это по-другому?Это веб-просмотр?

ОБНОВЛЕНИЕ:

    Intent intent = new Intent(sender, WebviewActivity.class);      
    extras.putString(DESTINATION_URL, destUrl);
    intent.putExtras(extras);

    return intent;

Ответы [ 2 ]

1 голос
/ 25 января 2012

Посмотрите это руководство: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

Вы должны переопределить onNewIntent () в своей деятельности, чтобы получить доступ к PendingIntents Bundle, который содержит новый URL.getIntent () всегда будет возвращать исходный Intent, который запустил Activity.

1 голос
/ 25 января 2012

попробуйте этот флаг:

Intent.FLAG_ACTIVITY_CLEAR_TOP

вместо:

Intent.FLAG_ACTIVITY_NEW_TASK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...