android获取屏幕当前显示的activity完整路径
发表于|更新于
|总字数:25|阅读时长:1分钟|浏览量:
android获取屏幕当前显示的activity完整路径
cmd中输入adb shell "dumpsys window | grep mCurrentFocus"
文章作者: 丨小小丶
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!
相关推荐

2021-03-26
Android线程池
Android中常见的线程池有四种,分别是FixedThreadPool、CachedThreadPool、ScheduledThreadPool、SingleThreadExecutor。 FixedThreadPool线程池是通过Executors的new FixedThreadPool方法来创建,特点是该线程池中的线程数量是固定的,即使线程处于闲置的状态,它们也不会被回收,除非线程池被关闭,当所有的线程都处于活跃状态时,新任务就处于队列中等待线程来处理。 FixedThreadPool只有核心线程,没有非核心线程 CachedThreadPool线程池是通过Executors的new CachedThreadPool来创建的它是一种线程数量不固定的线程池,它没有核心线程,只有非核心线程,当线程池中的线程都处于活跃状态,就会创建新的线程来处理新的任务,否则就会利用闲置的线程来处理新的任务。线程池中的线程都有超时机制,时长为60s,超过这个时间,闲置的线程就会被回收。这种线程池适合处理大量并且耗时较少的任务。 ScheduledThreadPool线程池是通过Executo...
2021-05-19
Android布局优化——merge的使用
Android布局优化:< merge >的使用merge标签主要用于减少布局层数,加快视图绘制,提高UI性能 主要使用场景 当根布局为FrameLayout时 当子控件完全不需要依赖父容器时 当使用include引入另一个布局且该布局和当前布局的视图一致时,可以在子布局中使用merge 举例我们有layout1.xml和layout2.xml两个布局文件,其中layout1.xml: <FrameLayout> <include layout="@layout/layout2"/></FrameLayout> layout2.xml: <FrameLayout> <TextView /> <TextView /></FrameLayout> 最后在layout1.xml中的效果就为 <FrameLayout> <FrameLayout> <TextView /> <TextView...
2021-09-14
activity在后台被杀死后恢复,fragment空指针导致崩溃的问题
activity在后台被杀死后恢复,fragment空指针导致崩溃的问题 出现原因 在activity被回收后恢复时,activity被重新实例化了,但是附属在该activity中的fragment并没有被销毁,在activity的onSaveInstanceState里会将fragment的状态保存起来,当activity重新创建时,其中的fragment还是之前的,而父activity已经被回收了,此时调用getActivity会返回null导致崩溃。 解决方法 只需要在fragmentactivity被系统回收的时候不保存fragment的状态即可,即重写fragmentactivity的onSaveInstanceState并注释掉super.onSaveInstanceState方法,代码如下: @SuppressLint("MissingSuperCall")@Overrideprotected void onSaveInstanceState(@NotNull Bundle outState) { // super...
2021-05-26
如何在TableLayout的item之间添加分割线
LinearLayout的android:divider属性 这个属性可以在LinearLayout的每个子布局直间添加一个“drawable”作为分割线,这个drawable必须有设定好的高度或者宽度,因此不能直接设置为“@color/….” 这个属性要和android:showDividers一起使用才会生效 android:showDividers有“begining”,“middle”,“end”,“none”四种值。默认值为“none”,即不显示分割线。 android:showDividers属性这个属性可以将定义的divider属性显示出来 android:showDividers=”beginning” 只有第一个子控件上方显示一条分割线 android:showDividers=”middle” 每个子控件之间都会显示一条分割线 android:showDividers=”end” 只有最后一个子控件的下方会显示一条分割线 android:showDividers=”none” 如果不设置此属性则默认为none,即不显示分割线 以上两个属性需设置a...
2021-03-25
Activity的四种启动模式
Activity的启动模式可以在AndroidManifest.xml中,通过android:launchMode或者在Intent的Flag来设置实现。 standard模式 特点:Activity的默认启动模式 每启动一个Activity就会在栈顶创建一个新的实例 缺点:当Activity已经位于栈顶时,再次启动Activity时还需要创建一个新的实例,不能直接复用。 singleTop(栈顶复用)模式 特点:该模式会判断要启动的Activity实例是否位于栈顶,如果位于栈顶则直接复用,调用其onNewIntent()方法,否则创建新的实例。 缺点:如果Activity并未处于栈顶位置,则还是可能会创建多个实例。 singleTask(栈内复用)模式 特点:Activity只会在任务栈里存在一个实例。如果要激活的Activity在任务栈里已经存在,就不会创建新的Activity,而是直接复用这个已经存在的Activity,调用其onNewIntent()方法,并且清空这个Activity任务栈上的所有Activity。 singleInstance(单一实例)模...
2021-07-12
Android程序按home键回到后台,点击桌面图标,当前页面退出回到启动页的问题
原因当点击桌面应用图标时,会重新启动app,启动新的堆栈,清除之前的堆栈,所以之前开启的页面都会被清除 解决方法在启动页面的onCreate()中加入 if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){ finish(); return; } 发现启动页再次启动后,立即执行Destroy方法,并使用return阻止后续的操作,便可以保留当前页面的显示状态。
