activity

Android的View体系(二):DecorView的创建与显示

与世无争的帅哥 提交于 2020-01-18 23:53:40
DecorView是顶级View,一般情况下它内部会包含一个竖直方向的LinearLayout,在这个LinearLayout里面有上下2部分,上面是标题栏,下面是内容栏。在Activity中我们通过setContentView所设置的布局文件其实就是被加载到内容栏之中。 本文,将介绍DecorView是如何创建与显示的。 说明:本文若无特殊说明,源码分析对应为api21。 一.DecorView的创建 上面我们提到,DecorView是显示的顶层View,那么View的绘制准备从DecorView开始说起。而DecorView的开始 就是我们熟悉的 setContentView()。 //代码片1 (Activity类) public void setContentView ( int layoutResID ) { getWindow ( ) . setContentView ( layoutResID ) ; initWindowDecorActionBar ( ) ; } 查看后发现,getWindow()返回的是Window类。而我们知道,Window是抽象类,而PhoneWindow是它的唯一实现类。也就是说,想了解 getWindow().setContentView(layoutResID) ,其实是PhoneWindow类的setContentView 方法。 /

Android 由于系统回收了Activity导致的fragmentUI错乱或数据加载异常等问题的处理。

两盒软妹~` 提交于 2020-01-18 17:36:20
Android 由于系统回收了Activity导致的fragmentUI错乱或数据加载异常等问题的处理。 背景:近期厂商反馈的进程长时间在后台,再次进入主页会出现数据加载不出来的情况。 复现办法: 方法1. 进入开发者选项->不保留活动(用户离开后即销毁每个活动) 方法2. # 找到进程PID adb shell ps | grep your.app.package # 结果类似下面这样: USER PID PPID VSIZE RSS WCHAN PC NAME u0_a111 11111 160 888888 222222 ffffffff 00000000 S your.app.package # kill掉该进程,如果说没有权限就先执行adb root adb shell kill -9 11111 # app已经被模拟回收了 当我们打开应用退至后台后会销毁我们的应用,再次进入时输出log如下: 11-13 17:14:12.177 16891-16891/ E/kradio.home: onCreate: this = HorizontalHomePlayerFragment{a6c9877 #0 id=0x7f0902b9 com.***.kradio.k_***.home.HorizontalHomePlayerFragment} 11-13 17:14:12.193

Chapter4:与Fragment交互

做~自己de王妃 提交于 2020-01-16 20:51:42
Chapter4:与Fragment交互 文章目录 Chapter4:与Fragment交互 4.1 屏幕界面管理 4.2 动态管理Fragment 4.2.1 事务变更的延迟执行 4.2.2 添加和删除Fragment 4.2.3 返回键的支持 4.3 创建一个自适应的应用布局 4.3.1 更新布局资源文件使其支持动态Fragments 4.3.2 适配差异的设备 4.3.3 动态载入Fragment 4.3.4 消除冗余的处理 4.3.5 管理异步的创建过程 4.3.6 合并更改 4.4 参考资料 4.1 屏幕界面管理 到现在为止,我们认为在我们的app中每个Activity都关联一个屏幕界面(screen),而Fragment则是关联一个屏幕界面中的一部分。举例而言,我们之前创建的书目浏览的例子中,当屏幕界面为横向时(wide-display),我们的app显示的是一个包含两个Fragment的Activity,一个Fragment显示书目标题,另一个Fragment显示被选中书目的内容描述。我们通过一个Activity管理和展示两个Fragment,使它们同时显示在一个屏幕界面上。当手机朝向切换为竖直时,书目标题和被选中书目的内容描述被分到两个屏幕界面显示,这时我们通过两个Activity分别管理这两个不同时显示在同一屏幕界面的两个Fragment。

Appium学习5:Package与Activity

爷,独闯天下 提交于 2020-01-16 18:56:47
Package Package 包。这是在我们的app中这个Package是唯一的,就像你身份证号码一样。 在我们做app自动化时,我们就需要知道他的Package,我们知道了Package那么也就知道我们需要对哪个app做自动化。 注意和.apk文件包名不同。 通过UIAuto演示不同app的包名 也可通过adb shell pm list package命令查找包名 Activity Android中,activity是所有程序的根本,所有程序的流程都运行在activity之中,activity可以算是开发者遇到的最频繁,也是android当中最基本的模块之一。 在android的程序中,activity一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么activity就相当于一个网页。 在activity当中可以添加一些Button、Checkbox等控件,可以看到activity概念和网页的概念相当类似。 一般一个android应用是由多个activity组成的,这多个activity之间可以进行相互跳转。例如,按下一个Button按钮后,可能会跳转到其他的activity,与网页跳转稍微有点不一样的是,activity之间的跳转有可能返回值。 Tips:activity的生命周期:即“产生、运行、销毁”,但是这其中会调用许多方法onCreate(创建)

什么时候加上android.intent.category.DEFAULT和LAUNCHER

删除回忆录丶 提交于 2020-01-16 07:42:40
转自:http://blog.csdn.net/ccccdddxxx/article/details/7843070 1、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。 Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码: Intent intent= new Intent(this, B.class) Implicit Intent没有明确的指定要启动哪个Activity ,而是通过设置一些Intent Filter来让系统去筛选合适的Acitivity去启动。 2、intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data。 理论上来说,如果intent不指定category,那么无论intent filter的内容是什么都应该是匹配的。但是,如果是implicit intent,android默认给加上一个CATEGORY_DEFAULT,这样的话如果intent filter中没有android.intent.category.DEFAULT这个category的话,匹配测试就会失败。所以,如果你的 activity支持接收implicit intent的话就一定要在intent

什么时候加上android.intent.category.DEFAULT和LAUNCHER

依然范特西╮ 提交于 2020-01-16 01:20:02
转自:http://blog.csdn.net/ccccdddxxx/article/details/7843070 1、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。 Explicit Intent 明确的指定了要启动的Acitivity ,比如以下Java代码: Intent intent= new Intent(this, B.class) Implicit Intent没有明确的指定要启动哪个Activity ,而是通过设置一些Intent Filter来让系统去筛选合适的Acitivity去启动。 2、intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data。 理论上来说,如果intent不指定category,那么无论intent filter的内容是什么都应该是匹配的。但是,如果是implicit intent,android 默认给加上一个CATEGORY_DEFAULT ,这样的话如果intent filter中没有android.intent.category.DEFAULT这个category的话,匹配测试就会失败。所以,如果你的 activity支持接收implicit intent的话就一定要在intent

dumpsys详解

假如想象 提交于 2020-01-14 12:28:59
dumpsys命令用法 dumpsys命令功能很强大,能dump系统服务的各种状态,非常有必要熟悉该命令的用法以及含义。 一、 dumpsys命令 1.1 服务列表 不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的dump服务,先进入adb shell,再执行如下命令: dumpsys -l 。 这些服务名或许你并看不出其调用的哪个服务,那么这时可以通过下面指令: service list 。 表一: 服务名 类名 功能 activity ActivityManagerService AMS相关信息 package PackageManagerService PMS相关信息 window WindowManagerService WMS相关信息 input InputManagerService IMS相关信息 power PowerManagerService PMS相关信息 batterystats BatterystatsService 电池统计信息 battery BatteryService 电池信息 alarm AlarmManagerService 闹钟信息 dropbox DropboxManagerService 调试相关 procstats ProcessStatsService 进程统计 cpuinfo CpuBinder

maven 实现activity工作流的简单例子(以报销为例 附代码)

落爺英雄遲暮 提交于 2020-01-14 11:54:46
今天看到公司有一个项目,是关于activity工作流的,第一次接触,记录一下,方便巩固和之后的查询。 1.配置maven环境 2.运行测试代码 3.代码实现activity工作流 1.配置maven环境    activity是一个比较简单容易上手的工作流,主要操作分为一下步骤 利用activity插件画出需要的逻辑流程图 部署流程 启动流程 迭代处理流程 流程结束 (1)安装所需的画图插件(有在线安装和离线安装,建议是离线安装)    离线通过安装包来安装     下载链接:https://pan.baidu.com/s/1jZgTImyDFsQ62ttt5CyQKg,提取码:abw0     解压后,将 对应的plugins中j所有ar包(我的解压路径是:D:\activityWorkFlow\ActivitiDesigner\plugins)复制到maven工具的安装目录( )下,然后删除configuration文件下的org.eclipse.update整个文件(不删掉的话,会报错的)    然后在 maven工具中选择help - install new software 点击进来后,选择 add - local… 选择画图插件解压后的位置,如下图: 验证是否安装成功,在maven工具中,点击 file - new - other...中 搜索activiti 如果出现

android 4.0 home

雨燕双飞 提交于 2020-01-14 05:00:55
引用: http://www.0case.com/Web/general/Content_96_35.html http://wenku.baidu.com/view/7004b32e4b73f242336c5f7a.html http://www.2cto.com/kf/201207/139705.html http://www.eoeandroid.com/thread-201721-1-1.html 修改 frameworks 层 近日在研究一个视频锁的功能,即在 视频播放界面上设一个锁的功能,当该锁起效后,就会屏蔽back, home, menu三个键的功能。   back 和 menu 键都可以通过 app层 的 onKeyDown 和 onKeyUp 函数来拦截。但是 home 键不行。   于是上网查了一下在app层屏蔽 home 键的方法。   主流的方法如下所示。但只在2.2,2.3平台下有效。(下面列举的方法只在android 2.2, 2.3 上有效)   屏蔽Activity, Dialog风格Activity, AlertDialog的Home键功能方法分别是:   1.屏蔽Activity中的Home键功能,只需要在你要屏蔽的activity 中重写 onAttachToWindow() 这个函数就可以了   [java]   @Override  

Activity启动流程

风格不统一 提交于 2020-01-13 17:26:15
每个Activity里面都包含一个window,每个window里面包含一个ViewGroup,而每个ViewGroup可以包含更多的view或者viewgroup。 LinearGroup和RelativeLayout都是viewgroup的子类。整个视图成为一个布局,一个布局称为一个xml文件,布局文件描述了在一个window中显示的视图(view),比如一个按钮,一段文本框,一副图片或者一个viewgroup,一个viewgroup又可以包含其他的view。 每个Activity对应的界面可以称为ContentView,一个Activity 只能拥有一个ContentView,一个ContentView一般对应一个Layout.xml文件,动态界面无非是再通过程序向ContentView添加或者删除一些view/viewgroup; Android 提供了设置其内部ContentView的函数——setContentView(),第一个参数是viewgroup对象,该对象可以来自一个静态的Layout.xml资源文件,也可以用程序动态创建。 1Launcher快捷图标启动应用程序 假设应用程序根Activity为MainActivity。 代码流程如下: Launcher. startActivitySafely->Activity.startActivity-