首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Activity 使用详解

Activity 方法 启动带返回值Activity Activity结束 方法 Activity状态保存,恢复方法 面试中经常问到例子 Activity是Android最基本四大组件之一(Activity...Activity 生命周期 简介 首先我们需要了解一下Activity继承关系。...继承关系后,我们开始了解Activity声明周期,Activity生命周期直接影响到与用户交互,此声明周期很重要。...Activity状态保存,恢复方法 当Activity异常退出时候,Activity会自动保存一些数据,但是,如果是app重要数据,还请在代码中手动保存Bundle类型数据,防止Activity保存数据不理想...Activity 状态保存与恢复 Activity 状态保存与恢复周期图如下: Activity 状态保存与恢复回调方法 Activity状态保存与恢复回调方法如下: // Activity

58110

使用 Intent 启动 ActivityActivity之间数据传递

Activity 对象可以执行动作,动作可以自己定义,也可以使用Android自带一些动作,此处使用了Android自带访问网页动作,那么系统将会寻找能够执行该动作Activity并启动,如果有多个..."/> SecondActivity 使用默认自带代码就可以了 运行程序,单击按钮之后出现系统选择框...在这里我们有两种选择,我们可以使用当前项目的应用响应这个Intent,但是并不能打开网页,因为我们并没有实现打开网页功能,也可以使用系统自带浏览器相应这个Intent,这样就可以打开百度网页。...而Serializable类型是一个接口,意为“序列化数据”,这个接口使得类对象能够变成序列化数据,供传输使用。...,也是将一些复杂数据序列化用于传输,两者区别在于效率问题Parcelable接口效率更高,但是使用起来更加复杂,要实现接口中一系列抽象方法用于将复杂类型序列化,而Serializable接口使用简单

2.2K10

Eclipse安卓使用Activity模板快速新建Activity

使用android studio安卓开发者可能发现它和eclipse+ADT大同小异,个人用完android studio之后发现android studio 除了界面比较炫酷以外,并没有多少优点.而且最被广大使用者诟病内存占用大问题也没有解决...不过,android studio在文件—新建菜单中,可以快速新建Activity功能相当实用,如图: ?...android studio新建activity功能就不用每次让我们很麻烦地建一个java类然后继承Activity了,Activity几个必要方法自动为我们声明了。...实际上,eclipse也有这样功能: Eclipse安卓使用Activity模板快速新建Activity eclipse新建菜单里面其实也有快速新建Activity功能,只是没有放在醒目的位置:...快速新建activity几种方法: ①分别打开菜单FILE——NEW——other——Android——Activity; ②Ctrl+N——Android——Activity; 用新建activity

93721

ActivityActivity启动模式:SingleTask

但是在写demo测试时候,发现这个说法是不准确。这句话成立条件是,要启动Activityaffinity是唯一,即当前所有的任务中没有与该affinity相同任务。...; MainActivity中启动SecondActivity SecondActivity中启动MainActivity MainActivity中启动SecondActivity 使用命令:“dumpsys...activity activities“,dump Activity信息。...如果设置了“singleTask”启动模式Activity不是在新任务中启动,它会在已有的任务中查看是否已经存在相应Activity实例,如果存在,会调用该实例onNewIntent,并且会把位于这个...Activity实例上面的Activit全部结束掉,最终这个Activity实例会位于任务堆栈顶端。

67120

Activity isFinishing()判断Activity状态实例

Activity中调用finish()或按返回键退出时,若有资源被其他对象引用不能释放(如context被某个单例对象引用或正在线程中被使用),则activity不会被调用onDestory()方法。...查看源代码中注释: /** * Check to see whether this activity is in the process of finishing, * either because...() 调用研究 刚刚一个BUG让我发现,如果 activity 实现了一个回调接口,然后使用 this 设置给需要回调接口方法,这种应用场景比较常见,最常见就是实现 onClickListener...接口,然后 findViewById().setOnClickListenr(this) 如果,这个回调接口设置到了一个静态对象(单例模式),当 activity finish() 时候(按返回键,回到桌面...以上这篇Activity isFinishing()判断Activity状态实例就是小编分享给大家全部内容了,希望能给大家一个参考。

2K20

activity详解_activity教程

大家好,又见面了,我是你们朋友全栈君。 前言 Activity可以获取运行中应用信息,可以获取到servcie,process,app,memory,Task信息等。...) :为Activity创建新任务栈,activity(需要创建任务栈Activity),intent(用于跳转页面的Intent),description(描述信息),thumbnail(缩略图)...图标大小 getMemoryInfo (ActivityManager.MemoryInfo outInfo) : 获取系统当前内存信息 getProcessMemoryInfo():返回一个或者多个进程使用内存情况...  我们需要定义一个自己ActivityManager,并且在BaseActivity中OnCreate方法里将启动Activity通过我们自定义ActivityManager把任务放入栈中,...()} 获取实例 * 成员变量 {@link #mActivityStack} 应该与系统回退栈保持一致,所以在启动activity时候必须在其onCreate中 * 将该activity加入栈顶,

93520

AndroidX下使用Activity和Fragment变化详解

在这种情况下,您需要在 Activity 中重写 onBackPressed()方法。但是,当您使用 Fragment 时,没有直接方法来拦截返回。...但是,从 AndroidX Activity 1.0.0 开始,您可以使用 OnBackPressedDispatcher 在您可以访问该 Activity 代码任何位置(例如,在 Fragment...通过使用 OnBackPressedDispatcher ,您不仅可以获得在 Activity 之外处理返回键便捷方式。...SavedStateRegistry 如果您希望 Activity 在终止并重启后恢复之前状态,则可能要使用 saved state 功能。...到此这篇关于AndroidX下使用Activity和Fragment变化详解文章就介绍到这了,更多相关AndroidX使用Activity和Fragment内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

1.7K10

【译】Activity分割动画如何使用动画##

思路很简单: Activity A保存为bitmap 把bitmap分割成两个子bitmap 子bitmap传递至Activity B 在Activity B布局之上显示两个子bitmap 使用动画向外移出两个子...对于低内存或者大屏幕设备来说,可能是很大开销。如果你依然选择使用,请小心,并且不要过度使用。...保存Bitmap## 为了得到整个Activity图片,可以使用以下代码: View root = currActivity.getWindow().getDecorView().findViewById...我使用硬件加速(了解更多有关硬件加速动画,请阅读我最新发布blog)并且在动画结束或者取消后,做了一些清理操作(如,移除硬件图层,把Imageview从Window窗口移除等等) 如何使用动画##...我曾反复思考,在尽量不限制开发者情况下,如何最简单便捷使用它。

1.4K20

获取Activity栈,判断当前Activity位置方法

但是,BaseActivity派生出N个Activity,BaseActivity中广播就会执行N次,导致弹框重复添加,所有在广播中判定,只有在栈顶Activity才能处理广播消息。...--获取Activity任务栈 权限-- <uses-permission android:name="android.permission.GET_TASKS" / 具体实现,获取栈以及其中内容:...// 获取activity任务栈 ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE...包名和全名: // 包名 com.haofang.testapp BaseActivity.this.getPackageName() // 类名 ui.main.MainActivity BaseActivity.this.getLocalClassName...() 之后进行对比,即可在非目标Activity避开处理 以上这篇获取Activity栈,判断当前Activity位置方法就是小编分享给大家全部内容了,希望能给大家一个参考。

3.5K30

activity

文章目录 一、activity生命周期 1、activity四种状态 2、activity生命周期 3、activity进程优先级 二、android任务栈 三、activity启动模式 四...():activity重新启动才调,由不可见状态变为可见状态时候会调用 onDestory(): 做一些资源释放 3、activity进程优先级 前台:可交互activity 或者 在前台activity...绑定service 可见:看得见但不能交互进程 服务:后台开启service服务 后台:前台进程被按home键后,但是不一定会回收,要看内存使用情况 空:没有活跃组件,只是出于缓存目的...):创建activity是在栈顶的话,就会复用 3、singleTask(栈内复用):创建activity是在栈内的话,就会复用并将栈内其上activity移除,并回调一个newIntent()...; 4、singleInstence:在整个系统在只有这一个activity,并且独享任务栈 四、scheme跳转协议 使用场景:1、服务端下发跳转 2、H5跳转activity 3、app根据

64130

Activity

Activity 什么是Activity 创建Activity 启动Activity 保存Activity状态 Activity生命周期 ---- acitivyt 是什么 引用官方说法: 是一个应用组件...); } } ---- 启动Activity 可以通过一个intent 来启动 一个Activity ,关于intent稍后会做总结 明确目标启动 在明确指导要启动Activity时候可以显示使用...,系统会过滤所有的ActivityintentFilter来匹配 ;一般 在同一个应用中不必使用隐式Intent; 例如 我在为A Activity添加这样IntentFilter: <activity..."); //附加信息描述 这里描述只要在intentFilter中声明了就能匹配上, // 如果有一项未声明则匹配不上,如果intentFilter中没有可以不添加,会使用默认category in.addCategory...).show(); } 为某个结果启动一个Activity 如果启动一个Activit只为获得某个结果 可以 使用 startActivityForResult() 来启动一个Activity ,在获得结果后会回调

92260

Activity启动流程

考察要点: 启动Activity会经历哪些生命周期回调 冷启动大致流程,涉及哪些组件,通信过程是怎么样Activity启动过程中,生命周期回调原理?...进程A与AMS交互过程 此处以跨进程启动Activity分析一下源码流程: A调用startActivity时,需要与AMS交互,此时需要需要获取到AMS代理对象Binder也就是上图AMP,通过...方法里面会获取到请求Activity参数信息: ``` mRemote.transact(START_ACTIVITY_TRANSACTION,data,reply,0); ......就是mFocusedStack,它会将栈顶ActivityRecord返回出来,我们目标Activity早就放置在了栈顶,只是一直没有初始化。...(activity,r.state); //生命周期OnCreate activity.performStart(); //生命周期OnStart return activity ``` handleResumeActivity

58850

【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位组件 )

Activity 类 ) 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位组件...三、使用 Hook 技术在主线程创建 Activity 实例之前使用插件 Activity 类替换占位组件 1、反射获取 ActivityThread 类 2、反射获取 ActivityThread...Intent 替换掉 , 使用占坑 Activity 替换插件包中 Activity , 之后 AMS 执行完毕 , 执行到主线程 实例化 Activity 对象之前 , 还要替换回去 ; 插件包组件启动方式...三、使用 Hook 技术在主线程创建 Activity 实例之前使用插件 Activity 类替换占位组件 ---- 1、反射获取 ActivityThread 类 // 反射获取...Activity 示例类之前 , 使用插件包中 Activity 组件替换之前在 AMS 调用之前使用 占坑用 Activity , 就是要创建 插件包 中 Activity实例对象 ;

1.3K30
领券