Я работаю с пользовательскими 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 разных URI - 2 разных загрузки содержимого страницы в качестве потока NOTIFICATION.
Но при повторном нажатии "Не запускать действие как новое". Таким образом, поток обратного пресса выполняется как
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>
От уведомления активность начинается как новая, так что задняя печать работает нормально. Но не в потоке браузера. Что я пропустил? Что делать? Если вам нужна дополнительная информация, любезно сообщите мне.