如果结果为非空,则至少有一个应用能够处理该 Intent,且可以安全调用startActivity()。 如果结果为空,则不应使用该 Intent。如有可能,您应停用发出该 Intent 的功能。...例如,主页应用通过使用指定ACTION_MAIN 操作和 CATEGORY_LAUNCHER 类别的 Intent 过滤器查找所有 Activity,以此填充应用启动器。...PackageManager 提供了一整套 query...() 方法来返回所有能够接受特定 Intent 的组件。...#queryIntentActivities(android.content.Intent, int)) 将返回能够执行那些作为参数传递的 Intent 的所有 Activity 列表,而 [queryIntentServices...reference/android/content/pm/PackageManager.html#queryIntentServices(android.content.Intent, int)) 则可返回类似的服务列表
请使用以下关键字组合进行过滤,按优先级排列:1.最核心的关键字:AndroidRuntime这是抓取Java崩溃堆栈(CrashStacktrace)的“黄金关键字”。任何未捕获的异常都会在这里显示。...;Listlist=pm.queryIntentActivities(intent,0);intlistSize=list.size();//空列表),或者intent初始化有问题。...可能性C:SecurityException如果你的SystemUpdaterSample是普通App,而Settings是系统级App(uid=1000),有时候直接调用可能会有权限问题,但在同签名为...快速调试命令如果你不想等grep,可以直接运行这个命令,它会把崩溃信息高亮显示出来:展开代码语言:BashAI代码解释adblogcat-vcolor*:E(只看Error级别的日志,通常崩溃都在这里)
软件包可见性会影响提供其他应用相关信息的方法的返回结果,如queryIntentActivities()、getPackageInfo()和 getInstalledApplications()。...需要注意的一点是startActivity 方法不受系统软件包可见性行为的影响,queryIntentActivities()查询为false,一样也可以跳转。 如何适配呢?...-- 仅在运行 Android 10(API 级别 29)及更低版本的设备上授予 READ_PHONE_STATE 权限 --> 方法会返回一个非空的空字符串,要唯一标识设备上安装的SIM,改用 getSubscriptionId() 方法。...使用方法 打开手机开发者选项,找到应用兼容性变更选项,点击进入找到需要调试的应用,在变更列表中,找到想要开启或关闭的变更。
Intent.ACTION_VIEW, webpage); 上面的Intent都是不带data的,但是有的时候Intent需要附带数据,数据可以是string,可以是基本数据类型,你可以调用putExtra()方法设置多个数据...你可以调用queryIntentActivities()方法来验证Intent是否会有Activity响应,queryIntentActivities()返回一个能够响应该Intent的Activity...列表,如果列表不为空,那么你就可以放心的发送这个Intent了。...Intent的代码如下: PackageManager packageManager = getPackageManager(); List activities = packageManager.queryIntentActivities...PackageManager packageManager = getPackageManager(); List activities = packageManager.queryIntentActivities
在 Android 10 及之前的版本中,应用可以通过 queryIntentActivities() 这样的方法获取到设备中所有已安装的应用列表。...为了达到这一目的,我们为特定设备上所安装的应用列表带来了更好的访问控制。...如果想获取更多别的已安装应用列表信息,则需要在应用内的 Android manifest 中添加 元素,从而拓宽访问范围。... 如果您使用 Custom Tab 来打开 URL 链接,您也许会调用 resolveActivity() 和 queryIntentActivities() 来启动一个非浏览器应用...Android Gradle 插件发布了一个 小版本 (dot releases) 的升级,以便兼容 元素: 举个例子,如果您正在使用 4.0.0 版本的 Android Gradle 插件,就可以在项目级别的
就是一个判断fragment是否有效的方法。...空实现的内部类作用是用来加载对应的fragment,因为在6.0的设置中只有设置主页面对应的activity有实现,别的页面基本是以fragment的形式呈现。...当创建快捷方式时调用queryIntentActivities方法查询到的类为这些空实现 的内部类。...启动独立的类 现在我们只能去查看其父类SettingsActivity.java中的实现了 Chapter Two,onCreate方法 首先是调用getMetaData方法,但与4.4.2源码不同,6.0...,这些list列表中存放的是设置项的相关信息。
Activity生命周期: 指定程序首次启动的Activity 如果程序中没有声明MAIN action或者LAUNCHER category的activity,那么在设备的主界面列表里面不会呈现app...Intent的发送 建立隐式的Intent 为了验证是否有合适的activity会响应隐式的intent,需要执行queryIntentActivities() 来获取到能够接收这个intent的所有...若返回的List非空,那么我们才可以安全的使用这个intent。...接收Activity返回的结果 在执行startActivityForResult()时,可以使用explicit 或者 implicit 的intent。...返回Result时默认的result code是RESULT_CANCELED.因此,如果用户在没有完成操作之前点击了back key,那么之前的activity接受到的result code就是”canceled
(2)Activity按优先级的分类 前台Activity;可见但非前台Activity;后台Activity (3)android:configChanges="xxx"属性,常用的主要有下面三个选项...一个过滤列表中的action、category、data可以有多个,所有的action、category、data分别构成不同类别,同一类别的信息共同约束当前类别的匹配过程。...(1)PackageManager的resolveActivity方法或者Intent的resolveActivity方法:如果找不到就会返回null (2)PackageManager的queryIntentActivities...方法:它返回所有成功匹配的Activity信息 针对Service和BroadcastReceiver等组件,PackageManager同样提供了类似的方法去获取成功匹配的组件信息,例如queryIntentServices...、queryBroadcastReceivers等方法 有一类action和category比较重要,它们在一起用来标明这是一个入口Activity,并且会出现在系统的应用列表中。
Q 第六问 new Foo().getName(); 答案:3 详解:这一题比上一题的唯一区别就是在Foo那里多出了一个括号,这个有括号跟没括号我们在第五问的时候也看出来优先级是有区别的 运算优先级表...首先new有参数列表(18)跟点的优先级(18)是同级,同级的话按照从左向右的执行顺序,所以先执行new有参数列表(18)再执行点的优先级(18),最后再函数调用(17) new有参数列表(18)->....当然这里再拓展个题外话,如果构造函数和原型链都有相同的方法,如下面的代码,那么默认会拿构造函数的公有方法而不是原型链,这个知识点在原题中没有表现出来,后面改进版我已经加上。...最终实际执行为: new有参数列表(18)->new有参数列表(18) 先初始化Foo的实例化对象,然后将其原型上的getName函数作为构造函数再次new,所以最终结果为3 答案 后续我把这题的难度再稍微加大一点点...(附上答案),在Foo函数里面加多一个公有方法getName,对于下面这题如果用在面试题上那通过率可能就更低了,因为难度又大了一点,又多了两个坑,但是明白了这题的原理就等同于明白了上面所有的知识点了
所以说实际上count(*)与count(1)在执行效率上是没有区别的,那既然没有区别我究竟要使用哪一个?...平时我们检索数据属于范围查询,查询指定的数据,所以走索引可以提高查询效率,但是count(id)选择索引基数大的主键索引肯定效率更低。...所以说我们在需要取整表行数的时候就可以给表加一个非空的tinyint类型字段,并且添加二级索引,count(*)就会使用这个二级索引,优化查询速度。...count(col) 说完了count(*),我们知道了如果在需要返回全部行数时可以使用count(*),那接下来我们如果需要查询姓名不为空的总行数怎么做呢?我们可以加个where很快实现: ?...所以说百万级数据就需要秒级明显不符合需求,所以我们单字段筛选就可以使用count(字段名),会自动将字段为空的行剔除掉,我们可以测试下: ?
原型、继承、全局变量污染、对象属性及原型属性优先级等知识,此题在网上也有部分相关的解释,当然我觉得有部分解释还欠妥,不够清晰,特地重头到尾来分析一次,当然我们会把最终答案放在后面,并把此题再改高一点点难度...18和第17都出现关于new的优先级,new (带参数列表)比new (无参数列表)高比函数调用高,跟成员访问同级 new Foo.getName();的优先级是这样的 相当于是: new (Foo.getName...)(); 点的优先级(18)比new无参数列表(17)优先级高 当点运算完后又因为有个括号(),此时就是变成new有参数列表(18),所以直接执行new,当然也可能有朋友会有疑问为什么遇到()不函数调用再...第六问 这一题比上一题的唯一区别就是在Foo那里多出了一个括号,这个有括号跟没括号我们在第五问的时候也看出来优先级是有区别的 (new Foo()).getName() 那这里又是怎么判断的呢?...首先new有参数列表(18)跟点的优先级(18)是同级,同级的话按照从左向右的执行顺序,所以先执行new有参数列表(18)再执行点的优先级(18),最后再函数调用(17) new有参数列表(18)->.
journalctl命令 journalctl命令是Systemd日志系统的一个命令,主要用途是用来查看通过Systemd日志系统记录的日志,在Systemd出现之前,Linux系统及各应用的日志都是分别管理的...--list-boots: 显示引导编号(相对于当前引导)、它们的id以及与引导相关的第一条和最后一条消息的时间戳的列表。...-p, --priority=: 根据消息优先级或优先级范围筛选输出,接受单个数字或文本日志级别(即在0 emerg和7 debug之间),或以..形式表示的numeric/text日志级别范围,日志级别是...(值更低优先级更高)日志级别的所有消息,如果指定了一个范围,则将显示该范围内的所有消息,包括该范围的开始值和结束值,这将为指定的优先级添加PRIORITY=匹配项。...--rotate: 要求日志守护进程滚动日志文件,此命令会一直阻塞到滚动操作完成之后才会返回,日志滚动可以确保所有活动的日志文件都被关闭、并被重命名以完成归档,同时新的空白日志文件将被创建,并成为新的活动日志文件
目录必须为支付页面的上一级页面地址。...5.trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。...complete:function(argv){ } }); 备注:上述摇一摇周边接口使用注意事项及更多返回结果说明,请参考:摇一摇周边获取设备信息 9.界面操作 (1).关闭当前网页窗口接口...var cardList= res.cardList; } }); 特别提醒: A.签名错误会导致拉取卡券列表异常为空,请仔细检查参与签名的参数有效性。...B.拉取列表仅与用户本地卡券有关,拉起列表异常为空的情况通常有三种:签名错误、时间戳无效、筛选机制有误,,请开发者依次排查定位原因 (2).批量添加卡券接口 wx.addCard({ // 需要添加的卡券列表
threading 模块除了包含 _thread 模块中的所有方法外,还提供的其他方法: threading.currentThread(): 返回当前的线程变量。...这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。 isAlive(): 返回线程是否活动的。 getName(): 返回线程名。...线程优先级队列(Queue) Python 的 Queue 模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列 PriorityQueue...Queue 模块中的常用方法: Queue.qsize() 返回队列的大小 Queue.empty() 如果队列为空,返回True,反之False Queue.full() 如果队列满了,返回True,...再执行别的操作 实例: #!
(tagNames)删除单个或者多个 tagNames 指定的标签tag_lower(tagName, belowThis=None)降低 Tag 的优先级,如果 belowThis 参数不为空,则表示...tagName 需要比 belowThis 指定的 Tag 优先级更低tag_names(index=None)如果不带参数,表示返回 Text 组件中所有 Tags 的名字,若存在 index 参数则返回该位置上所有...tag_raise(tagName, aboveThis=None)提高 Tag 的优先级,如果 aboveThis 参数不为空,则表示 tagName 需要比 aboveThis 指定的 Tag 优先级更高...tag_ranges(tagName)返回所有 tagName 指定的文本,并将它们的范围以列表的形式返回tag_remove(tagName, index1, index2=None)删除 index1...name", "Python答疑")# 显示窗口root.mainloop()运行脚本,界面如下:图片总结本文主要介绍了text模块对于index,tag,mark的操作,后续我们将介绍tkinter的列表和组合框模块
那么如果个别的视图类不想认证呢?...③ authentication_classes 为空,则不会进行认证。 ? 究竟如何进行认证 上面说了想要定义多个认证规则,其实就是封装多个认证类,那么这些认证如何进行认证呢? ?..._authenticate 方法中调用 authenticator.authenticate(self) 方法,返回给 user_auth_tuple,并通过判断 user_auth_tuple 是否为空...,其实就像是从浏览器发送请求,request 中携带用户的认证信息,在进入视图类之前,通过一次一次调用认证类来查看携带的认证信息是否正确,如果正确则返回数据库中正确的 User 对象。...在 authenticate 中可以添加具体的认证逻辑,当然也可以在视图类中书写,但是 drf 中提供的组件,可以使得代码耦合度更低,维护性更强,更方便。
比如查询一个列表,要打印结果列表大小) 4 ....这里打印出来的日志和debug级别日志相同,只是省去了修改日志级别的步骤,系统默认会打印info级别日志; 过滤掉指定类型的参数不打印 比如这里,我们每个请求都会有一个默认的apiInfoDto参数...当一个方法返回结果是多个对象,有时候我们只想知道一共有多少个结果,所以此时全部打印出结果,难免有点浪费,可通过参数:printOutParamSize = true来指定,只打印结果大小 4....异常处理及非空判断 绝大部分的时候不准捕获异常,应该直接抛出,交controller统一处理。...少加空判断。如果对象不应该为空,就不需要加空判断,加了空判断就要测试为空和不为空二种情况。 5.
示例: 在**1、基本概念** 下,三级标题可能包括: 1.1、结构化的意义 1.2、结构化的方法 4....示例: 在**1.2、结构化的方法** 下,四级标题可能包括: 1.2.1、文本结构化技术 1.2.2、数据结构化过程 Markdown 语法 Markdown 是一种轻量级标记语法,广泛用于撰写格式化文本...示例: ## 这是二级标题 子标题(Subheadings) 功能: 进一步细分内容,表示更低级别的标题。 Markdown 语法: 三级标题:使用 ### 和一个空格。...四级标题:使用 #### 和一个空格。 示例: ### 这是三级标题 #### 这是四级标题 列表(Lists) 无序列表 功能: 用于组织项目或步骤,不强调顺序。...Markdown 语法: 使用 *、+ 或 - 作为列表项的标记。 示例: * 列表项一 * 列表项二 * 列表项三 有序列表 功能: 表达顺序性的内容。