gpt4 book ai didi

android - 在推送通知事件中维护父 Activity

转载 作者:行者123 更新时间:2023-11-30 01:20:51 25 4
gpt4 key购买 nike

我有一个 Activity A(启动 Activity )、 Activity B(家庭 Activity )、 Activity C(优惠 Activity )、 Activity D(其他 Activity )。我想在两种情况下为优惠 Activity 创建适当的着陆:

一般应用流程:
Activity A-> Activity B-> Activity C-> Activity D

场景A : 当应用程序关闭时。 (任务管理器中不存在)
需求 :点击推送通知时,我希望用户直接登陆 Activity C(优惠 Activity )。而且我希望在单击返回按钮时用户不应该退出应用程序,而是应该能够看到 Activity A,然后从 A 中单击返回,他应该退出。
当前场景:现在,当通知登陆时,点击它,用户登陆到 Activity C(这是正确的),但是从该屏幕返回时,用户直接退出应用程序。为什么会这样?这是我的父 Activity 堆栈代码

          <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);

谁能让我知道我做错了什么?因此,当我从 Offers Activity 按下而不是登陆到 HomeActivity 时,我会退出应用程序。

最佳答案

试试这个我定制的接收器,工作正常。

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);
}
}

manifest.xml 中注册从您的 pushwoosh 面板尝试 WOOSH。

关于android - 在推送通知事件中维护父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com