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

时间:2013-05-21 23:53:11

标签: android android-notifications android-pendingintent back-stack

我在使用TaskStack通知时遇到问题。我在点击通知时试图保持应用的导航流程。

我的应用的导航风格如下:

PrincipalActivity(父母)→SecondaryActivity(孩子)

有时,GCM服务可以推送以SecondaryActivity开头的通知。 PrincipalActivity的实例可能存在或不存在,因此我从TaskStack实现了自定义PendingIntent(见下文)。这在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());

的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" />

我尝试使用PendingIntentFLAG_UPDATE_CURRENTFLAG_ONE_SHOT)的标记,并为清单中的活动(launch_mode,{singleTask尝试了不同的singleTop {1}},singleInstance),但没有运气。

当父级已经在前台并且不丢失数据时,如何使用activity和parent创建上述自定义TaskStack? (理想情况下,重用堆栈中的活动?)

0 个答案:

没有答案