Пользовательская навигация по URI из уведомлений и из браузера

Я работаю с пользовательскими URI, чтобы показать соответствующий контент в приложении для Android.

Навигационный поток из Уведомления:

onMessage () метод GCMBaseIntentService У меня есть вызов метода generateNotification().

 private void generateNotification(Context context, String message,
                        String uri) {
    int icon = R.drawable.icon;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager) context
    .getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);
    String title = context.getString(R.string.app_name);

    Uri deepLinkUri = Uri.parse(uri);

    String scheme = deepLinkUri.getScheme();

    Intent notificationIntent = null ;

    String appPackageName = getApplicationContext().getPackageName();

    if(scheme.equals("market")){

    try {
    notificationIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" +appPackageName));
        } catch (android.content.ActivityNotFoundException anfe) {
        //redirect to browser url to download/update
                        }

    }else{

    notificationIntent = new Intent(context,
    com.play.android.SplashScreen.class);
    }



    notificationIntent.setData(deepLinkUri);
    /* notificationIntent.setData(Uri.parse(uri)); */
    // set intent so it does not start a new activity
                    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
    | Intent.FLAG_ACTIVITY_SINGLE_TOP);
                    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent intent = PendingIntent.getActivity(context, 0,
    notificationIntent, 0);

    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    long notify_ID = System.currentTimeMillis();
    notificationManager.notify((int) notify_ID, notification);
                }

Если у меня есть 2 уведомления (разный контент страницы, но одинаковые URI с разными идентификаторами). Если я нажму на уведомление 1, показываю точную страницу с данными и оставлю ее как есть, и снова нажму на уведомление 2, показывающее соответствующий контент.

Теперь я снова нажимаю, перехожу на домашнюю страницу, второй назад нажимаю закрыть приложение.

Ход навигации из браузера:

С мобильного сайта нажатие кнопки дает тем же URI его навигацию к соответствующей странице.

Например, 2 разные кнопки - 2 разных URI - 2 разных загрузки контента страницы в качестве потока УВЕДОМЛЕНИЙ.

Но когда нажимаешь обратно, не начинай Активность как свежую. Так что обратный пресс-поток выполняется как

first back press --- >URI2 page content close - home page show
second back press----> home page close - URI 1 page content show
third back press ----->  URI 1 page content close - home page show
fourth back press ----> App closing.

В файле манифеста действие объявлено следующим образом:

<activity
            android:name="com.play.android.SongsTabs"
            android:configChanges="orientation|keyboardHidden"
            android:exported="true"
            android:screenOrientation="portrait" >
            <intent-filter>
                <data
                    android:pathPrefix="music/*"
                    android:scheme="myscheme" />
                <data
                    android:pathPrefix="playlist/*"
                    android:scheme="myscheme" />
                <data android:scheme="myscheme" />

                <category android:name="android.intent.category.DEFAULT" />

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.BROWSABLE" />

                <action android:name="android.intent.action.ALL_APPS" />
            </intent-filter>
        </activity>

С момента уведомления активность начинается как новая, так что обратное нажатие работает нормально. Но не в потоке браузера. Что я пропустил? Что делать надо? Если вам нужно больше деталей, пожалуйста, дайте мне знать.

0 ответов

Другие вопросы по тегам