Activity概述话说Android中有四大组件:Activity、Service、BroadcastReceiver、ContentProvider。我们最常接触也是用户直接感受到的就是Activity了,今天来就说说Android启动的执行过程和工作原理。Activity是一种 展示型组件,用于展示给用户一个可以交互的页面。ActivityAndroid中最重要的组件,对用户来说,所有的A
转载 2023-07-25 23:00:35
92阅读
在上篇博客中说到有两种方式启动进程,其中一种就是点击Launcher界面,在点击Launcher最后也会调用Activity的startActivity方法,但是在Launcher中会调用如下代码:intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);这句代码代表启动这个Activity的时候要新建一个Task,主要在AMS中所有的Activity都是保存在
转载 2024-03-18 08:50:12
34阅读
app启动的过程有两种情况,第一种是从桌面launcher上点击相应的应用图标,第二种是在activity中通过调用startActivity来启动一个新的activity。 我们创建一个新的项目,默认的根activity都是MainActivity,而所有的activity都是保存在堆栈中的,我们启动一个新的activity就会放在上一个activity上面,而我们从桌面
转载 2024-05-06 17:56:56
112阅读
1,Activity的生命周期 正常情况下生命周期:oncreate--onStart--onResume--onPause--onStop--onDestory 异常情况下:onSaveInstanceState-onPause-onStop-onDestory 重建后onCreate--onRestoreInstanceState 系统资源不足会回收低优先级的activity
转载 9月前
52阅读
1.基于消息的通信机制  Intent ---boudle ,extra数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream, 或者LinkList链表等等数据类型就不太好用。2. 利用static静态数据,public static成员变量;3.基于外部存储的传输,  File/Preference/ Sqlite ,如果要针对第三方应用需要Conten
我们在平常开发的过程中,想启动一个Activity怎么办?startActivity(Intent intent)就可以了,这是一个简单得不能在简单的问题了。但如果问你启动一个Activity具体经过了哪些步骤,即时在同一App内调用startActivity是否用到了进程间通信呢?是不是有点蒙,我一个App内启动一个Activity还会用到进程间通信,要搞基(什么)?那么,我们就具体来看一看吧,
转载 2024-06-25 21:39:01
203阅读
1、ActivityRecord、TaskRecord、ActivityStack和ActivityDisplay介绍  本篇文章是基于Android refs/tags/android-9.0.0_r8分支的代码进行分析的   在分析Activity启动的源码之前先介绍一下Activity的一些基本概念。1.1 Activity和Task  关于AndroidActivity和Task的介绍,
转载 2024-01-31 18:23:26
63阅读
    Android 10.0 Activity启动详解(一)    我们在上一篇博客中已经介绍了关于Activity的一些基础概念。这一篇博客我们以Android 10.0的代码来分析Activity启动流程。    Activity启动主要包括以下几个步骤:    1.应用通过startActivity或是s
转载 2023-09-12 15:02:40
21阅读
Activity启动大致流程:无论是通过Launcher来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都通过Binder进程间通信进入到ActivityManagerService进程中,并且调用ActivityManagerService.startActivity接口;ActivityManagerService调用Activ
转载 2023-08-31 10:49:50
159阅读
如何启动activity1. startActivity。在桌面点击应用图标或者通过intent来启动activity都是这种方式2. startActivityForResult。3. startActivityFromRecent。当退出应用后再从最近应用列表中启动app startActivity后的一些疑问1. startActivity的执行流程,运行的架构?2. activi
转载 2023-09-14 12:32:48
199阅读
前言前一篇介绍了在启动页面的时候创建进程的过程,当进程创建完成之后就会调用App的ActivityThread.main 方法。一、mian// ActivityThread类 public static void main(String[] args) { ... // 省略一些初始化代码 Looper.prepareMainLooper(); ActivityTh
转载 2023-07-02 13:53:32
371阅读
启动Activity有两种方式:1)startActivity2)startActivityForResult方式1,启动后不关心activity返回的结果方式2,启动后可以接收activity返回的结果,接收结果需要在onActivityResult函数中处理。下面我们来看下这个函数protected void onActivityResult(int requestCode, int resu
standard:Activity的默认加载方式,该方法会通过跳转到一个新的Activity,同时将该实例压入到栈中(不管该Activity是否已经存在在Task栈中,都是采用new操作,生命周期从onCreate()开始)。例如:栈中顺序是A B C D,此时D通过Intent跳转到A,那么栈中结构就变成A B C D A,点击返回按钮的显示顺序是D C B A,依次摧毁。 singleTo
转载 2023-08-31 00:50:49
284阅读
### Android 获取当前栈顶activity是否处于resume 作为一名经验丰富的开发者,我们经常需要判断当前栈顶的activity是否处于resume状态,以便进行相应的处理。在Android开发中,我们可以通过以下步骤来实现这个功能: #### 流程图 ```mermaid flowchart TD A(获取ActivityManager) --> B(获取当前运行的任
原创 2024-03-08 05:41:10
205阅读
首先对 android.intent.action.MAIN 以及android.intent.category.LAUNCHER做个说明 一个应用程序可以有多个Activity,每个Activity是同级别的,那么在启动程序时,最先启动哪个Activity呢?有些程序可能需要显示在程序列表里,有些不需要。怎么定义呢?android.intent.action.MAIN决定应用程序最先启
转载 2023-10-07 23:27:16
165阅读
下面补充一些备注和笔记。算法复制算法 (Copying)图示:标记-压缩算法 (Mark-Compact)英文描述: mark-compact 总结起来就是 标记 —> 压缩有用的对象到一端 —> 回收此端外剩下的空间 图示:可以看出,这两种算法都可以减少内存碎片GC Roots英文官方说明:The root kinds are:Class - class loaded
启动 Activity常规的启动Activity的方法,就是通过Intent构建一个意图,然后通过context.startActivity() 或者context.startActivityForResult()将活动启动起来Intent intent = new Intent(this,MainActivity.class); intent.putExtra("params1"
转载 2024-04-01 22:38:12
162阅读
前言在这篇文章中,将会基于android 26源码上分析Activity启动到显示到屏幕和Decorview添加到Window中的过程。另外在本文中,省略了很多内容,目的只是从源码中找到一条启动的线索。迟点再补充上流程图。从startActivity开始说起在应用层开发时,Acitvity跳转会写出下面的代码:public static void startAtcivity(BaseActivi
转载 2023-07-25 23:01:50
253阅读
Activity启动分为两种:根Activity启动按下桌面的程序快捷图标,启动应用程序的第一个Activity的过程,因此根Activity启动过程也可以理解为应用程序的启动过程。普通Activity启动程序内从一个Activity打开另外一个Activity的过程的启动。 Activity大体启动流程主要涉及四个进程:Launcher进程,也就是桌面进程系统服务进程,AMS所
当我们在桌面点击app和app内部启动Activity时都会调用到Activity中的startActivityForResult方法public void startActivityForResult(@RequiresPermission Intent intent, int requestCode, @Nullable Bundle options) {
转载 2023-08-06 18:44:09
96阅读
  • 1
  • 2
  • 3
  • 4
  • 5