小编Hit*_*bam的帖子

自定义TaskStack从通知中完成父活动

我在使用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

6
推荐指数
0
解决办法
564
查看次数