我有活动A(启动活动),活动B(家庭活动),活动C(提供活动),活动D(杂项活动)。我想在两种情况下创建适当的Landings to Offers活动:
一般App流程: 活动A->活动B - >活动C->活动D
方案A :关闭应用程序时。 (任务管理器中不存在) 要求:点击推送通知,我希望用户应直接登陆活动C(优惠活动)。我想要点击后退按钮,用户不应退出应用程序,而应该能够看到活动A,然后从A点击后退,他应该退出。 当前场景:现在,当通知登陆时,点击它,用户登陆到活动C(这是正确的),但是当从该屏幕点击返回时,用户直接退出应用程序。为什么会这样?这是我的父亲活动堆栈代码
<activity
android:name=".OffersActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme"
android:windowSoftInputMode="stateHidden">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.zotopay.zoto.HomeActivity" />
</activity>
<activity
android:name=".HomeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"
android:theme="@style/AppTheme"
>
</activity>
defaultConfig {
applicationId "com.zotopay.zoto"
minSdkVersion 14
targetSdkVersion 22
versionCode 1310145
versionName "1.4.5"
}
推送通知登陆代码:
Intent resultIntent = new Intent(this, OffersActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// All the parents of OffersActivity will be added to task stack.
stackBuilder.addParentStack(OffersActivity.class);
// Add a SecondActivity intent to the task stack.
stackBuilder.addNextIntent(resultIntent);
PendingIntent contentIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
任何人都可以让我知道我做错了什么?因为当我从优惠活动回来而不是登陆HomeActivity时,我会退出应用程序。
答案 0 :(得分:1)
尝试这个接收器我定制并正常工作。
public class PushWooshManager extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
if (intent == null)
return;
Bundle pushBundle = PushManagerImpl.preHandlePush(context, intent);
if(pushBundle == null)
return;
JSONObject dataObject = PushManagerImpl.bundleToJSON(pushBundle);
Intent launchIntent =new Intent(MyApplication.getInstance().getApplicationContext(),YourDesired.class);
launchIntent.addCategory("android.intent.category.DEFAULT");
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
launchIntent.putExtras(pushBundle);
launchIntent.putExtra(PushManager.PUSH_RECEIVE_EVENT, dataObject.toString());
context.startActivity(launchIntent);
PushManagerImpl.postHandlePush(context, intent);
}
}
在你的pushwoosh面板中manifest.xml
尝试使用WOOSH注册。