我在使用TaskStack通知时遇到问题.我正在尝试在点击通知时保持我的应用程序的导航流程.
我的应用程序的导航风格如下:
PrincipalActivity(父母)→ SecondaryActivity(孩子)
有时,GCM服务可以推送启动的通知SecondaryActivity.PrincipalActivity可能存在或不存在的实例,所以我从a实现自定义PendingIntent TaskStack(见下文).这在PrincipalActivity暂停或关闭时有效.
当用户PrincipalActivity在前台点击通知时出现问题:PendingIntent调用PrincipalActivity.onDestroy()并创建丢失所有数据的新堆栈活动.
服务推送通知:
Intent notificationIntent = new Intent(context, SecondaryActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(SecondaryActivity.class);
stackBuilder.addNextIntent(notificationIntent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
mNotifyBuilder.setContentIntent(pendingIntent);
mNotificationManager.notify(id, mNotifyBuilder.build());
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中
<activity
android:name="com.hitsbam.geotalk.Principal"
android:configChanges="orientation|screenSize|keyboardHidden"
android:label="@string/principal_titulo"
android:launchMode="singleTask" />
<activity
android:name="com.hitsbam.geotalk.Secondary"
android:configChanges="orientation|screenSize|keyboardHidden"
android:label="@string/peticiones_titulo"
android:parentActivityName=".Principal" />
Run Code Online (Sandbox Code Playgroud)
我试着用的标志PendingIntent(FLAG_UPDATE_CURRENT,FLAG_ONE_SHOT),并用不同的实验launch_mode在清单(为活动singleTask,singleTop,singleInstance),但没有运气.
TaskStack当父级已经在前台并且不丢失数据时,如何使用activity和parent 创建上述自定义?(理想情况下,重用堆栈中的活动?)
android android-notifications android-pendingintent back-stack