首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    获取屏幕上正在显示的activity 博客分类: Android小技巧

    用过ActivityManager的童鞋估计都知道,可以从ActivityManager里面可以获取到当前运行的所有任务,所有进程和所有服务,这是任务管理器的核心。...仔细看getRunningTasks的文档,里面说获取的是系统中"running"的所有task,"running"状态包括已经被系统冻结的task。...而且返回的这个列表是按照顺序排列的,也就是说第一个肯定比第二个后运行。 getRunningTasks有个整型参数,表示返回列表的最大个数。...那么,我们如果把1作为参数给进去,那么他返回的task就是当前运行的那个task,然后从task中获取到最顶层的activity,这个activity就是当前显示给用户的那个activity了。...("", "pkg:"+cn.getPackageName()); Log.d("", "cls:"+cn.getClassName());           至于这个能做什么,嘿嘿,我相信你知道的。

    3.3K30

    如何在 elementary OS 中改变锁定和登录屏幕的壁纸

    在 elementary OS 中改变锁屏或登录屏背景的灰色默认壁纸是有点困难的。典型的用图像文件的路径改变 greeter 的配置是行不通的。...不幸的是,这不是一个更简单的解决方案,因为灰色背景是一个图像文件,它的数据是硬编码在 greeter 中的,需要用新的图像重新编译才能使其发挥作用。...下面是方法: 改变 elementary OS 锁定和登录屏幕背景 在 elementary OS 中打开一个终端。...elementary OS 使用一个 100×100px 的 PNG 文件作为登录屏幕/锁屏的默认背景。该图像是平铺的,给人一种灰色背景的感觉。...而你应该在 elementary OS 的登录屏上看到你的墙纸。 这个指南应该可在 elementary OS 6 Odin、elementary OS 5 Juno 及以下版本中可用。

    1.7K20

    Android-活动的最佳实践

    知晓当前在哪一个活动 工作当中可能接手一份别人的代码,当需要在某个界面修改东西的时候,却找不到这个界面对应的是哪个活动。...现在点击按钮分别进入三个活动, 可以看到把当前活动的类名打印了出来。...()方法,表示将当前正在创建的活动添加到活动管理器里, 然后在Base中重写onDestroy()方法,并调用ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器里移除...(android.os.Process.myPid()); } }); } 加上了杀掉当前进程的代码,以保证程序完全退出, android.os.Process.killProcess...(android.os.Process.myPid()); killProcess()方法用于杀掉一个进程,接收一个进程ID参数,我们可以通过myPid()方法来活动当前程序的进程ID, 需要注意的是

    79110

    探究Android活动的小技巧

    探究Android活动的小技巧 1.找出当前的活动 当我们在查看别人的代码的时候可能不能第一眼就发现首次的活动是哪一个,我们可以通过以下的方法来找出当前的主活动是哪一个: 新建一个BaseActivity...import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log...:"+ getClass().getSimpleName()); } } 然后让其他的类继承这个类这样当我们启动程序的时候就可以在log日志中找出当前执行的是哪一个活动. 2.随时随地退出程序 新建一个...import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast...}); } } 3.启动活动的最佳方法 SecondActivity添加如下代码: public static void actionStart(Context context

    71720

    android autosize原理,Android屏幕适配头条:autosize的原理

    大家好,又见面了,我是你们的朋友全栈君。...主要是固定一个UI尺寸,比如宽度360,然后为了各个density显示的宽度都是360dp,则通过 :px=dp * density, density =screenWidthPx / 360; 记录下文章...假设我们设计稿是宽度是 1080px,资源放在 xxhdpi,那么我们宽度转换为 dp 就是 1080 / 3 = 360dp,要在不同设备上宽度都表现为 360dp,那么就需要修改其 density...() 是不同的引用,所以在 API 26 及以上适配是没有影响的,但在 API 26 以下 Activity#getResources()#getDisplayMetrics() 和 Application...#getResources()#getDisplayMetrics() 是相同的引用,导致适配有问题,这里要感谢 @MirkoWu 提出的问题,后面会有解决之法。

    70820

    Python: 屏幕取色器(识别屏幕上不同位置的颜色)

    文章背景:工作中,有时候需要判断图片中不同位置的颜色。有些颜色不太容易区分,所以想通过Python编写代码,通过屏幕取点,获取某个位置的颜色值。...代码逻辑: (1)文末参考资料[2]的csv文件(记为颜色表)中给出了865种颜色的英文名称和对应的RGB数值,在此基础上,笔者添加了相应的中文名称,如下表所示。...(2)通过鼠标在屏幕上取点,获取指定位置的RGB数值,然后与颜色表中各行的RGB数值进行匹配,返回RGB数值最接近的颜色信息。...,Windows上以RGB图像的形式返回。...buttonCapture.wait_window(w.top) # 截图结束,恢复主窗口,并删除临时的全屏幕截图文件 root.state('normal') os.remove

    6K30

    创建支持多种屏幕尺寸的Android应用

    Android涉及各种各样的支持不同屏幕尺寸和密度的设备。对于应用程序,Android系统通过设备和句柄提供了统一的开发环境,大部分工作是校正每一个应用程序的用户界面到它显示的屏上。...你应该利用Android系统的这些特性去为每一个屏幕配置优化你的应用程序界面,并且应确保你的应用程序不仅能正常运行,而且应尽可能地在每一个屏幕上提供最好的用户体验。...这个基线是基于第一个Android 上电设备,T-Mobile G1的屏幕配置,它具有HVGA屏幕(直到Android1.6,这是Android支持的唯一的屏幕配置)。...然而,谷歌播放目前不支持过滤属性(在Android3.2上),因此,如果应用程序不支持小屏幕,应该继续使用其它尺寸的属性。...更多关于这些属性的信息,请查阅以上相应的链接。 最佳实践 支持多个屏幕的目的是为了创建一个能正常运行,且在任何Android支持的广义的屏幕配置上看起来都很舒服的应用程序。

    3K60

    Android-活动的生命周期

    返回栈 Android中的活动是可以层叠的,每启动一个新的活动,就会覆盖在原活动之上, 然后点击Back键就会销毁最上面的活动,下面的活动就会重新显示出来。...Android是用任务(Task)管理活动的,一个任务就是一组存放在栈里的活动的集合, 这个栈也被称作返回栈(Back Stack)。栈是一种后进先出的数据结构。...活动状态 每个活动在其生命周期中最多可能有4中状态, 运行状态 处于返回栈栈顶。 暂停状态 不处于栈顶位置,但仍可见,因为并不是每一个活动都占满整个屏幕的,比如对话框形式的活动。...销毁状态 一个活动从返回栈移除就成销毁状态了,系统最倾向回收这种状态的活动。 活动的生存周期 Activity类定义了7个回调方法,覆盖了活动生命周期的每一个环节。...前台生存期: 活动在onResume()和onPause()之间经历的就是前台生存期,这期间活动总是处于运行状态的,此时的活动是可以和用户进行交互的,平时接触最多的也就是这个状态下的活动。

    58030

    Android Activity 活动的生命周期

    这每个活动中我们都重写了这个方法,它会在活动第一次被创建的时候调用。你应该在这个方法中完成活动的初始化操作,比如说加载布局、绑定事件等。 onStart()。...这个方法在活动由不可见变为可见的时候调用,对资源进行加载。 onResume()。这个方法在活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的栈顶,并且处于运行状态。...这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方法中将一些消耗CPU 的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。...它和onPause()方法的主要区别在于,如果启动的新活动是一个对话框式的活动,那么onPause()方法会得到执行,而onStop()方法并不会执行。 onDestroy()。...---- 活动被回收前的数据保存与恢复 onSaveInstanceState()回调方法可以保证在活动被回收之前一定会被调用,因此我们可以通过这个方法来解决活动被回收时临时数据得不到保存的问题。

    90820

    Android屏幕适配AndroidAutoSize的使用「建议收藏」

    Android屏幕适配AndroidAutoSize的使用 AndroidAutoSize的使用 加入依赖 配置AndroidManifest.xml主单位或者副单位 主单位的配置 副单位的配置 初始化...主单位的使用 副单位的使用 AndroidAutoSize的使用 记录一下Android屏幕适配框架的使用 加入依赖 implementation ‘me.jessyan:autosize:1.2.1...false, 如果设置为 false, 在以屏幕高度为基准进行适配时 //AutoSize 会将屏幕总高度减去状态栏高度来做适配 //设置为 true 则使用设备的实际屏幕高度, 不会减去状态栏高度...//在全面屏或刘海屏幕设备中, 获取到的屏幕高度可能不包含状态栏高度, 所以在全面屏设备中不需要减去状态栏高度,所以可以 setUseDeviceSize(true) isUseDeviceSize...在1080*2160 DPI400显示效果 在Pixel_XL 1440*2560 560DPI显示效果 可以看到底部的两块区域刚好填充完屏幕 副单位的使用 初始化 //AndroidAutoSize

    4K20

    Android官方提供的屏幕适配的全部方法

    UI布局 确保正确的布局应用在正确的设备屏幕上 提供可以根据屏幕大小自动伸缩的图片 使用 "wrap_content" 和 "match_parent"  为了确保你的布局能够自适应各种不同屏幕大小...QVGA屏幕上显示的结果。...下图展示了这个布局在一个更大的屏幕上显示的结果。 可以注意到,即使屏幕的大小改变,视图之前的相对位置都没有改变。...现在有很多的应用程序为了支持大屏设备,都会实现“two pane”模式(程序会在左侧的面板上展示一个包含子项的List,在右侧面板上展示内容)。...例如,7寸的平板最小宽度是600dp,所以如果你想让你的UI在这种屏幕上显示two pane,在更小的屏幕上显示single pane,你可以使用sw600dp来表示你想在600dp以上宽度的屏幕上使用

    1.4K30
    领券