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

时间:2016-04-22 12:29:05

标签: android android-intent android-activity broadcastreceiver

我有一个接收推送通知的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 {

        }

2 个答案:

答案 0 :(得分:2)

有同样的问题。通过在主题中添加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>

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

答案 1 :(得分:0)

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