FacebookActivity在Api 23及以上版本没有调用finish()

6
我正在我的应用程序中使用Facebook SDK。为了不在单击Facebook按钮时显示独立进度条,我使用以下内容:
<activity android:name="com.facebook.FacebookActivity"
            android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:theme="@android:style/Theme.NoDisplay"
</activity>

然而,我认为对于API 23+的设备,这会导致崩溃:

"com.facebook.FacebookActivity在onResume()完成之前没有调用finish()"

有人在这里说:Activity did not call finish? (API 23)通过编写以下内容:

@Override
protected void onStart() {
    super.onStart();
    setVisible(true);
}

在有问题的活动中,他们解决了这个问题。但由于我不能编辑FacebookActivity,是否有任何替代方案?

3个回答

10

Facebook已更改其说明,以便最初设置您的项目。只需将com.facebook.FacebookActivity的主题更改为@android:style/Theme.Translucent.NoTitleBar


0

查看windowNoDisplay的javadoc:

(...)您的活动必须立即退出,而不等待用户交互(...)

因此,异常是正确的,您的用例与windowNoDisplay不匹配。


0

这是平台的一个bug。

如果你在你的应用程序中的一个或多个活动中使用了Theme.NoDisplay,并且你还没有在Android 6.0上进行测试,我建议你尽快这样做。在Android 6.0中有一个未记录的回归,如果你的targetSdkVersion为23或更高,则会导致其中一些活动在启动时崩溃。

请参阅此博客文章:https://commonsware.com/blog/2015/11/02/psa-android-6p0-theme.nodisplay-regression.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接