gpt4 book ai didi

android - Branch.io 返回 "Session initialization already happened"错误消息

转载 作者:行者123 更新时间:2023-12-03 16:35:32 24 4
gpt4 key购买 nike

我查了this在 git 上报告了问题,很多人报告了它,但那里没有合适的解决方案。

如果我的应用程序被杀死并且内存中不存在应用程序进程,那么一切正常。

但我的用例是从推送通知中获取分支链接。

我还将 splashActivity 设置为 SingleTask

android:launchMode="singleTask"



我收到以下错误消息。

BRANCH_SDK: Warning. Session initialization already happened. To force a new session, set intent extra, "branch_force_new_session", to true.



以下是我的代码,它检查是否有任何来自分支的数据,并将详细信息传递给 HomeActivity,HomeActivity 然后根据 id 加载特定的新闻项目。

我不知道从哪里通过 branch_force_new_session这个信息。如果我从 Splash Intent 传递它,它就是行不通的。

我正在使用 branchSDK 5.0.1
class SplashActivity : AppCompatActivity(), , Branch.BranchReferralInitListener{


override fun onStart() {
super.onStart()
Branch.sessionBuilder(this).withCallback(this).withData(if (intent != null) intent.data else null).init()

Log.d("BRANCH_SDK_00_", "onStart")
}


override fun onInitFinished(referringParams: JSONObject?, error: BranchError?) {

if (error == null) {

if(referringParams?.has("news") ==true){
isNewsItemReceivedFromBranch = true
branchAggregatedFeedItemId = referringParams.getInt("news")


//StartHomeActivity()
}

initAppStartupProcesses()

} else {
Log.e("BRANCH_SDK", error.message)
initAppStartupProcesses()
}

}


}

list
<activity
android:name=".activities.SplashActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>



<!-- Branch URI Scheme -->
<intent-filter>
<data android:scheme="aaa" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<!-- Branch URI Scheme -->

<!-- Branch App Links (optional) -->
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="aaa.aa.aa" />
<data android:scheme="https" android:host="aaa.aaaa" />
</intent-filter>

</activity>

最佳答案

这里有一个分支 -

当应用程序已经在前台并且用户尝试通过深层链接打开应用程序时,就会发生这种情况。

这可以通过更新他们的 oNewIntent 覆盖方法来避免,如下所示 -

  @Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
// if activity is in foreground (or in backstack but partially visible) launching the same
// activity will skip onStart, handle this case with reInitSession
private Branch.BranchUniversalReferralInitListener branchReferralInitListener = new Branch.BranchUniversalReferralInitListener() {
@Override public void onInitFinished(@Nullable BranchUniversalObject branchUniversalObject, @Nullable LinkProperties linkProperties, @Nullable BranchError error) {
// do something with branchUniversalObject/linkProperties..
}
}

如果这不起作用,您也可以尝试使用 Branch.getInstance().getLatestReferringParams()而不是读取 Branch.init 中收到的参数在最新版本的 SDK 中。

关于 SDK 的 future 发展,我会不断更新这篇文章。

关于android - Branch.io 返回 "Session initialization already happened"错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61214602/

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