如何避免使用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK之后的黑屏问题

在自己的项目中,我需要使用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK来开始新的activity同时移除之前所有的activity。我使用这个intent flag的代码如下:

<span style="white-space:pre">		</span>Intent intent = new Intent(Gerenxinxi.this, MainPart.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
		startActivity(intent);
		finish()

但是当执行这段代码的时候,我发现会有一段黑屏的时间段(很短,但是能很明显感觉出来)。我试着把intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);这行代码去掉,发现黑屏就不见了。为了测试,使用其他的flag,如FLAG_ACTIVITY_CLEAR_TOP等均没有发生黑屏的情况,但是根据需求我又必须要使用Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK。后来经过自己的查找和测试,发现通过下面的方法可以去掉黑屏。

如果是像上面的代码那样所展现的是从Gerenxinxi这个activity跳转到MainPart,那么我们在AndroidManifest里的mainpart的配置应该是这样的:

 <span style="white-space:pre">	</span><activity
            android:name="com.ci123.jiayuanbao.school.MainPart"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme_yu" >
        </activity>

同时,在style里我们要配置style:

<span style="white-space:pre">	</span><style name="AppTheme_yu" parent="@android:style/Theme.Light">
        <span style="white-space:pre">	</span><item name="android:windowNoTitle">true</item>
       <span style="white-space:pre">		</span><item name="android:animationDuration">0</item>
       <span style="white-space:pre">		</span><item name="android:windowDisablePreview">true</item>
	</style>   

主要是<item name="android:windowDisablePreview">true</item>,可以去掉之前所出现的黑屏。

这是我在网上问的问题,别人回复的链接:http://stackoverflow.com/questions/31264157/how-to-avoid-black-screen-when-intent-flag-activity-new-task-intent-flag-activ

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 11:39:09

如何避免使用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK之后的黑屏问题的相关文章

怎样避免使用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK之后的黑屏问题

在自己的项目中.我须要使用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK来開始新的activity同一时候移除之前全部的activity. 我使用这个intent flag的代码例如以下: Intent intent = new Intent(Gerenxinxi.this, MainPart.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent

Android基础之Intent 和 Intent 过滤器

Intent是一个消息传递对象,您可以使用它从其他应用组件请求操作.尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 1.启动 Activity: Activity 表示应用中的一个屏幕.通过将 Intent 传递给 startActivity(),您可以启动新的 Activity 实例.Intent 描述了要启动的 Activity,并携带了任何必要的数据.如果您希望在 Activity 完成后收到结果,请调用 startActivityForResult

Intent 和 Intent Filter简介

Intent 和 Intent Filter Intent 是一个消息对象,你可以用它向另一个 app 组件发生动作请求.尽管 Intent 在促进组件间沟通的方式有多种,主要有个以下三种基本方式: 1.启动一个 Activity: 一个 Activity 代表 app 中一个单独的 screen.你可以通过为 startActivity() 方法传入一个 Intent 对象来启动一个 Activity 对象.Intent 描述要启动的 Activity, 并携带该 activity 启动所必须

android intent和intent action大全

1.Intent的用法: (1)用Action跳转 1.使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个 Activity的IntentFilter段中 定义了包含了相同的Action那么这个Intent就与这个目标Action匹配.如果这个IntentFilter段中没有定义 Type,Category,那么这个 Activity就匹配了.但是如果手机中有两个以上的程序匹配,那么就会弹出一个对话可框来提示说明. Action 的值在Android中有很多预

记录:Intent、Intent过滤器和通用Intent

摘要:现在可以看中文的部分文档,可是内容真心不好记.看过之后就无名的又忘记了.还是摘抄一道的方式去加深记忆和当做一次笔记方便后面自己快速查找.记录一下,Intent,Intent的过滤和 常用的通用 Intent Intent ??intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中链接两个不同的组件.通过 intent,你的程序可以向 Android表带某种请求或者意愿,Android会根据意愿的内容适当的组件来完成请求.比如,有一个 activity 希

android API Guides学习--Intent and Intent Filters

Intent是一个消息传递类,同时可以启动一些组件 作用: 1启动一个activity组件. 通过Context类的 startActivity()/ startActivity ()方法启动activity组件. 2启动一个service组件 通过Context类的startService()方法启动此组件,只能执行一次性操作(例如下载文件). 通过Context类的 bindService()方法 3发送一条广播 通过Context类的sendBroadcast(), sendOrdered

Android——Intent和Intent过滤器

http://www.cnblogs.com/XP-Lee/p/3613830.html Intent就是一个激活组件的消息对象,用于组件之间的通信.需要注意的是,能被Intent激活通信的组件只有三类:Activity.Service和BroadcastReceiver.对应这三类组件,Intent有下面三种使用场景: 启动Activity:在app中,一个Activity就代表一个用户界面.以Intent为参数调用startActivity()启动一个Activity实例.这个Intent告

Intent和Intent Filter的区别

在Android 帮助文档中,Intent的介绍为An intent is an abstract description of an operation to be performed,意思是一个Intent是对一个即将进行的操作的抽象,Intent的字面意识就是"意图",Android应用程序中的三种其他应用程序基本组件--Activity, Service和Broadcast Receiver,都是使用称为intent的消息来"激活"的.对于向这三种组件发送i

API翻译 --- Intent and Intent Filters

IN THIS DOCUMENT Intent Types           目的类型 Building an Intent        构建一个意图 Example explicit intent       例子显式意图 Example implicit intent      例隐式意图 Forcing an app chooser 迫使应用程序选择器 Receiving an Implicit Intent           收到一个隐式意图 Example filters