Android 编程中,为什么设置了 Intent.FLAG

Android 编程中,为什么设置了 Intent.FLAG,第1张

Flag是一些常用的标志,不同的Flag有不同的用途。例如:

FLAG_ACTIVITY_BROUGHT_TO_FRONT

这个标志一般不是由程序代码设置的,如在launchMode中设置singleTask模式时系统帮你设定。

FLAG_ACTIVITY_CLEAR_TOP

如果设置,并且这个Activity已经在当前的Task中运行,因此,不再是重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将关闭,然后这个Intent会作为一个新的Intent投递到老的Activity(现在位于顶端)中。 例如,假设一个Task中包含这些Activity:A,B,C,D。如果D调用了startActivity(),并且包含一个指向Activity B的Intent,那么,C和D都将结束,然后B接收到这个Intent,因此,目前stack的状况是:A,B。 上例中正在运行的Activity B既可以在onNewIntent()中接收到这个新的Intent,也可以把自己关闭然后重新启动来接收这个Intent。如果它的启动模式声明为“multiple”(默认值),并且你没有在这个Intent中设置FLAG_ACTIVITY_SINGLE_TOP标志,那么它将关闭然后重新创建;对于其它的启动模式,或者在这个Intent中设置FLAG_ACTIVITY_SINGLE_TOP标志,都将把这个Intent投递到当前这个实例的onNewIntent()中。 这个启动模式还可以与FLAG_ACTIVITY_NEW_TASK结合起来使用:用于启动一个Task中的根Activity,它会把那个Task中任何运行的实例带入前台,然后清除它直到根Activity。这非常有用,例如,当从Notification Manager处启动一个Activity。

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

如果设置,这将在Task的Activity stack中设置一个还原点,当Task恢复时,需要清理Activity。也就是说,下一次Task带着FLAG_ACTIVITY_RESET_TASK_IF_NEEDED标记进入前台时(典型的 *** 作是用户在主画面重启它),这个Activity和它之上的都将关闭,以至于用户不能再返回到它们,但是可以回到之前的Activity。 这在你的程序有分割点的时候很有用。例如,一个e-mail应用程序可能有一个 *** 作是查看一个附件,需要启动浏览Activity来显示。这个Activity应该作为e-mail应用程序Task的一部分,因为这是用户在这个Task中触发的 *** 作。然而,当用户离开这个Task,然后从主画面选择e-mail app,我们可能希望回到查看的会话中,但不是查看附件,因为这让人困惑。通过在启动浏览时设定这个标志,浏览及其它启动的Activity在下次用户返回到mail程序时都将全部清除。

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS

如果设置,新的Activity不会在最近启动的Activity的列表中保存。

FLAG_ACTIVITY_FORWARD_RESULT

如果设置,并且这个Intent用于从一个存在的Activity启动一个新的Activity,那么,这个作为答复目标的Activity将会传到这个新的Activity中。这种方式下,新的Activity可以调用setResult(int),并且这个结果值将发送给那个作为答复目标的Activity。

FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY

这个标志一般不由应用程序代码设置,如果这个Activity是从历史记录里启动的(常按HOME键),那么,系统会帮你设定。

FLAG_ACTIVITY_MULTIPLE_TASK

不要使用这个标志,除非你自己实现了应用程序启动器。与FLAG_ACTIVITY_NEW_TASK结合起来使用,可以禁用把已存的Task送入前台的行为。当设置时,新的Task总是会启动来处理Intent,而不管这是是否已经有一个Task可以处理相同的事情。 由于默认的系统不包含图形Task管理功能,因此,你不应该使用这个标志,除非你提供给用户一种方式可以返回到已经启动的Task。 如果FLAG_ACTIVITY_NEW_TASK标志没有设置,这个标志被忽略。

FLAG_ACTIVITY_NEW_TASK

如果设置,这个Activity会成为历史stack中一个新Task的开始。一个Task(从启动它的Activity到下一个Task中的Activity)定义了用户可以迁移的Activity原子组。Task可以移动到前台和后台;在某个特定Task中的所有Activity总是保持相同的次序。 这个标志一般用于呈现“启动”类型的行为:它们提供用户一系列可以单独完成的事情,与启动它们的Activity完全无关。 使用这个标志,如果正在启动的Activity的Task已经在运行的话,那么,新的Activity将不会启动;代替的,当前Task会简单的移入前台。参考FLAG_ACTIVITY_MULTIPLE_TASK标志,可以禁用这一行为。 这个标志不能用于调用方对已经启动的Activity请求结果。

FLAG_ACTIVITY_NO_ANIMATION

如果在Intent中设置,并传递给ContextstartActivity()的话,这个标志将阻止系统进入下一个Activity时应用Acitivity迁移动画。这并不意味着动画将永不运行——如果另一个Activity在启动显示之前,没有指定这个标志,那么,动画将被应用。这个标志可以很好的用于执行一连串的 *** 作,而动画被看作是更高一级的事件的驱动。

FLAG_ACTIVITY_NO_HISTORY

如果设置,新的Activity将不再历史stack中保留。用户一离开它,这个Activity就关闭了。这也可以通过设置noHistory特性。

FLAG_ACTIVITY_NO_USER_ACTION

如果设置,作为新启动的Activity进入前台时,这个标志将在Activity暂停之前阻止从最前方的Activity回调的onUserLeaveHint()。 典型的,一个Activity可以依赖这个回调指明显式的用户动作引起的Activity移出后台。这个回调在Activity的生命周期中标记一个合适的点,并关闭一些Notification。 如果一个Activity通过非用户驱动的事件,如来电或闹钟,启动的,这个标志也应该传递给ContextstartActivity,保证暂停的Activity不认为用户已经知晓其Notification。

FLAG_ACTIVITY_REORDER_TO_FRONT

如果在Intent中设置,并传递给ContextstartActivity(),这个标志将引发已经运行的Activity移动到历史stack的顶端。 例如,假设一个Task由四个Activity组成:A,B,C,D。如果D调用startActivity()来启动Activity B,那么,B会移动到历史stack的顶端,现在的次序变成A,C,D,B。如果FLAG_ACTIVITY_CLEAR_TOP标志也设置的话,那么这个标志将被忽略。

FLAG_ACTIVITY_SINGLE_TOP

如果设置,当这个Activity位于历史stack的顶端运行时,不再启动一个新的。

质粒序列测序。flag标签蛋白检测蛋白过表达是看质粒序列测序是否正确,Flag标签蛋白为编码8个氨基酸的亲水性多肽(DYKDDDDK,编号:133742),同时载体中构建的Kozak序列使得带有FLAG的融合蛋白在真核表达系统中表达效率更高。

您好,flag板是一种用于实现计算机系统硬件与软件之间的接口的板卡。它是一种特殊的接口,可以将计算机系统的硬件和软件连接在一起,以便实现计算机系统的功能。flag板可以将计算机系统的硬件和软件连接在一起,以便实现计算机系统的功能。它可以将计算机系统的硬件和软件连接在一起,以便实现计算机系统的功能。flag板可以将计算机系统的硬件和软件连接在一起,以便实现计算机系统的功能。它还可以支持计算机系统的多种功能,如计算机系统的输入输出、存储、网络、系统管理等。此外,它还可以支持计算机系统的多种功能,如计算机系统的输入输出、存储、网络、系统管理等。flag板可以改善计算机系统的性能,提高计算机系统的效率,并且可以改善计算机系统的可靠性。

v131-beta即将来袭,其中有一个新功能。用户可以实时查看设备上的App列表。有了该功能,用户可以快捷地根据应用名或包名搜索对应包信息,快捷启动、卸载。

如果只是获取app简单的信息,我们可以使用两种方法:

那应用图标我们怎么获取呢?

Sonic通过Sonic助手,通过apk的形式,在设备上获取信息。步骤如下:

ApplicationInfoFLAG_SYSTEM 的意思是获取当前flag的末尾,为0即为非系统app

不过应用图标获取过来是Drawable对象,我们需要将Drawable转换为base64

不过该方式还是有优化空间,目前接收大量base64的时候,前端加载还是会有卡顿的情况,但是将二进制发送给Agent进行base64编码,Agent的工作量又会增加,本地生成再pull到Agent的方式又太慢。如果你有更好的想法,欢迎一起留言讨论~

噢对了,apk的开源地址: 这里

先新建一个系统选择linux

设置光驱,直接点

虚拟机

的图标

如果你有光盘,那么光驱不用去设置的,如果是要用镜像,那么直接在设置的光驱的那里添加镜像就可以了。

然后就和你在自己的机器上安装一模一样了

最后:建议不要用redflag,我用的是ubuntu

以上就是关于Android 编程中,为什么设置了 Intent.FLAG全部的内容,包括:Android 编程中,为什么设置了 Intent.FLAG、flag标签蛋白怎么检测蛋白过表达、flag板是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9337882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存