onCreate中的moveTaskToBack导致活动短暂显示然后隐藏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了onCreate中的moveTaskToBack导致活动短暂显示然后隐藏相关的知识,希望对你有一定的参考价值。

我有一个接收推送通知的BroadcastReceiver,然后我开始一个活动并显示通知。 (请注意,当用户操作通知时,活动未启动)

我的目的是以“后台模式”启动活动,然后当用户响应通知时将活动带到前面。

一切都很完美,除了活动简要显示然后立即隐藏。 (闪烁活动一秒钟)。

这是我的代码:

BroadcastReceiver...
        Intent intent = new Intent(context, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("BACKGROUND",true);
        context.startActivity(intent);


MainActivity.....
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (getIntent().getBooleanExtra("BACKGROUND",false)) {
            moveTaskToBack(true);
        } else {

        }
答案

有同样的问题。通过在主题中添加android:windowDisablePreview属性来解决。

例如,在你的res/values/styles.xml中:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:windowDisablePreview">true</item>
    </style>

</resources>

不确定是否有任何方式以编程方式添加它。

另一答案

有同样的问题。 通过启动服务解决它,然后在需要时打开Activity。这是推荐的方法。

以上是关于onCreate中的moveTaskToBack导致活动短暂显示然后隐藏的主要内容,如果未能解决你的问题,请参考以下文章

Android项目实战:moveTaskToBack(boolean ) 方法的使用

在主屏幕顶部的 Activity 上调用 movetasktoback 方法不会将主屏幕带到前台

完成 onCreate 中的活动时,如何在 onCreate 之前调用我的片段的 onCreateView?

从 MainActivity 中的 onCreate() 启动另一个 Activity?

什么是android中的OnCreate方法

CMainFrame OnCreate 中的消息框