Activity相关

Activity简述 Android Activity件数生命周期 阅读详情

说下Activity生命周期 ?

主要生命周期如下:
onCreate:Activity创建
onStart:Activity可见,但是不能与用户交互
onResume:Activity在前台与用户交互
onPause:Activity可见,但不能与用户交互
onStop:Activity已经完全被挡住,不可见
onDestroy:Activity被销毁

在Activity A中启动另一个Activity B 会调用哪些方法?如果B是透明主题的又或则是个DialogActivity呢 ?

调用的方法有:onPause(A)->onCreate(B)->onStart(B)->onResume(B)->onStop(A)
如果是透明主题或者是Dialog主题的Activity,则A不会调用onStop

说下onSaveInstanceState()方法的作用 ? 何时会被调用?

onSaveInstanceState() 用于在Activity因为资源不足被杀死或者横竖屏切换时保存Activity状态信息,比如输入框的文字等等。

说下 Activity的四种启动模式、应用场景 ?

standard:标准模式。每次启动都会创建一个新的Activity
singleTask:栈内复用。当前栈是目标栈的时候,只会创建同一份,并自动挪到栈顶,栈内前面的Activity都会被清除。一般app内复用的界面
singleTop:栈顶复用。当前栈是目标栈的时候,如果目标Activity在栈顶则复用,如果不是则重新创建一个
singleInstance: 整个系统内只创建一份实例,并且单独一个栈

了解哪些Activity常用的标记位Flags?

FLAG_ACTIVITY_NEW_TASK:为Activity指定singeTask启动模式
FLAG_ACTIVITY_SINGLE_TOP:为Activity指定singleTop启动模式
FLAG_ACTIVITY_CLEAR_TOP:启动后清除栈内位于它上面的Activity,如果使用标准模式启动,则会把它和它上面的Activity都清除,再重新创建一个Activity放到栈顶
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:具有这个标记的Activity不会出现在历史Activity列表中

说下 Activity跟window,view之间的关系?

Window是一个抽象类,它的具体实现是PhoneWindow,WindowManager是外接访问window的入口。WindowsManager的具体实现是WindowManagerService。WindowManager和WindowMangerService通过IPC交互。Android上所有的视图都是通过Window来呈现的,不管是Activity、Dialog还是Toast。它们的视图实际上都是附加在Window上,因此单击事件由Window传递给DecorView,再由DecorView传递给具体View,setContentView在底层也是通过Window来完成的。(待详细解析)

横竖屏切换的Activity生命周期变化?

onPuase->onStop->onDestroy->onCreate->onStart->onResume
onSaveInstanceState会在onStop之前调用,可能在onPause之前,也可能在onPause之后

如何启动其他应用的Activity?

显示调用,隐式调用 startActivity,action,category

Activity的启动过程?(重点)

调用过程:
Activity: startActivity->…->startActivityForResult
Instrumentation:execStartActivity
ActivityManagerNative:startActivity
ActivityManagerService:startActivity-> StartActivityAsUser
ActivityStackSupervisor:startActivityMayWait->resumeTopActivityLocked->resumeTopActvityInnerLocked->startSpecificActivityLocked->realStartActvityLocked
ActivityThread.ApplicationThread:scheduleStopActivity->发送H.LAUNCH_ACTIVITY消息->handleLaunActivity->performLaunchActivity->performLaunchActivity
通过Instrumentation 的newActivity方法使用类加载器创建Activity对象
通过LoadedApk的makeApplication方法来常识创建Application

Activity Intent相关FLAG介绍 C通过intent跳转到D,并且这个intent添加了FLAG_ACTIVITY_NEW_TASK 标记,如果D这个Activity在Manifest.xml中的声明中添加了Task affinity,并且和栈1的affinity不同,系统首先会查找有没有和D的Task affinity相同的task栈存在,如果有存在,将D压入那个栈,如果不存在则会新建一个D的affinity的栈将其压入。原来是A,B,C这个时候再C中以这个FLAG启动D的,D再启动E,这个时候栈中情况为A,B,C,E。 阅读详情

相关推荐

基础总结篇之三:Activity的task相关

古人學問無遺力,少壯工夫老始成。紙上得來終覺淺,絕知此事要躬行。南宋.陸遊《冬夜讀書示子聿(yù)》 软件行业也是一样,多少前辈不遗余力的奋斗才出现了软件行业的繁荣的景象,其中已有不少成为大师级人物。今天我们站在伟人的肩膀上,自然会有不少的优势,但不要忘了,要在对技术的认知方面有所提升,仍需我们去实践,去实践。 今天我们来讲一下Activity的task相关内容。 上次我们讲到Activ

LiuHe 5万+

git 常用命令

git常用命令: git status : 显示工作区和暂存区的状态 git add . : 将工作指定文件/文件夹添加到暂存区 git commit -m “日志” : 将暂存区 文件提交至仓库区 git clone : 克隆仓库(会下载在本地) git branch “分支名” : 创建新的分支 git checkout “分支名” : 切换该分支 git checkout -b "分支名“ :创建新分支并立即切换到该分支下 git remote : 查看当前的远程库 git f

fenqi19980808的博客 1319

git-activity:查询 github 以获取用户提交活动

Git 活动 这将获取提供的 github 页面的提交活动。 git-activity [OPTIONS] URL OPTIONS: -l COUNT --limit COUNT Limit commits to the last COUNT days. 例子 刚拿到数据: git-activity matthewfranglen git-activity https://github.com/matthewfranglen 限制天数: git-activity -l 7 matthewfranglen git-activity --limit 7 matthewfranglen 用绘制数据: git-activity --limit 7 matthewfranglen | spark

git-activity 项目使用教程

git-activity 项目使用教程 1. 项目介绍 git-activity 是一个自定义的 Git 命令,用于显示当前 Git 仓库和分支的活动图,类似于 GitHub 上的贡献图。通过这个工具,用户可以直观地查看仓库中代码的提交活动情况。该项目支持多种图表样式,并且可以自定义是否显示列之间的间距。 2. 项目快速启动 2.1 安装依赖 在 macOS 上运行 git-activity 之前...

gitblog_00094的博客 407

LinuxCNC---在PC端显示开发板LinuxCNC界面

  今天在调试开发板时,执行开发板上的linuxcnc指令,总是出现如下报错 LINUXCNC - 2.9.0~pre0 application-specific initialization failed: couldn't connect to display "192.168.137.3:1" Error in startup script: invalid command name "image" while executing "image create photo -file $f/$i

中华田园巨龙 3471

QFN封装芯片手工焊接实战:从焊盘处理到拖焊技巧

本文详细介绍了QFN封装芯片手工焊接的全过程,从焊盘处理到拖焊技巧,再到常见问题的现场修复方法。通过实战经验分享,帮助工程师和DIY爱好者掌握0.5mm小间距QFN芯片的焊接技术,提升焊接成功率和质量。重点讲解了垂直与平行拖焊手法的对比应用,以及焊后清理与质量检验的关键步骤。

weixin_42652674的博客 532

Activiti (环境搭建)

1.1 环境搭建 由于 Activiti 将自己的代码交给 GitHub 托管,而且基于 Maven 构建项目,所以要搭建 Activiti 源码环境首先需要安装 Maven 以及 GitHub 1.1.1 安装 GitHub 百度网盘下载:https://pan.baidu.com/s/13PBGJF7W_1uUdB7M5tk7vA 提取码:3llz 1)下载后直接下一步下一步安装就...

踏 浪的博客 1179

对冲策略与马丁结合ea的编程实践(五)核心是把两个品种合成一个新品种

在外汇、数字货币、期货交易甚至赌博中,马丁策略、网格策略是最常用的策略,也是最容易被理解的策略,但是如何克服单边行情、极端行情,是使用马丁策略最为头疼的事情,如加大间距、加大资金量,只能缓解,并不能根本解决这样的情况,所以使用时大部分时候都心里没底。 有没有一种正确的思路,让行情控制在震荡范围以内呢,这是今天我要向大家分享的一个思路,那就是对冲。大家看下图: 大家可以看到欧美(EURUSD)和镑美(GBPUSD),这两个品种,大部分时候走势是一致的,那么我们有没有可能把他们两个品种进行一下合成,比如买0.

omidsky的博客 3740

Android面试相关 - Activity

1.Activity生命周期 在正常情况下,Activity生命周期就只有如下7个: onCreate():表示Activity正在被创建,常用来初始化工作,比如调用setContentView加载界面布局资源,初始化Activity所需数据等; onRestart(): 表示Activity正在重新启动,一般情况下,当前Activity从不可见重新变成可见时,onRestart就回被调用; onstart(): 表示Activity正在被启动,此时Activity可见但不在前台,还处于后台,无法与用户.

大心的博客 872

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录

本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。

qsc901234的博客 334

Python 爬虫实战:从零搭建第一个爬虫程序(附完整代码)

本文介绍了Python网络爬虫的入门实战,以豆瓣Top250电影榜单为例,详细讲解爬虫开发全流程。内容包括爬虫基础原理、环境搭建、请求发送与响应处理、数据解析与保存等核心环节,并提供了可直接运行的完整代码示例。文章还分析了常见问题解决方案,并强调了爬虫开发的合规注意事项。通过本教程,读者可快速掌握Python爬虫的基本思路和实操技巧,为后续深入学习BeautifulSoup、XPath等进阶技术打下基础。

2503_91057718的博客 2316

Activity的task相关

上次我们讲到Activity的四种启动模式的时候,已经了解到一些关于task的技术,今天我再向大家介绍一下。task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity是放置在同一个task中的,后者被压入前者所在的task栈,当用户按下后退

qi_ruihua的专栏 579

AI工具 | 每个打工人必备的15款人工智能超级工具

不过,还是有一些靠谱的人工智能平台,它们可不只是营销噱头。有些AI公司正试图改变游戏规则。人工智能工具让人们能够更聪明地工作,而不是更辛苦地劳作。如果你想知道未来有什么,那就来看看这10款人工智能工具吧,它们将彻底改变我们的工作方式。

Vampire_2017的博客 5万+

Activity相关学习(五)

应用进程服务绑定、Activity创建启动

linwq8的博客 1781

C3 模块与普通 Bottleneck 堆叠区别

维度普通 Bottleneck 堆叠C3 模块设计理念残差学习CSP + 特征分治信息路径单一路径双路径(主干 + bypass)融合方式相加(Add)拼接(Concat)+ 卷积计算效率较低高(通道减半)特征保留弱(多次非线性)强(直连保留原始信息)梯度传播单一主路径多样化、更稳定任务适配通用(分类为主)专为目标检测优化可扩展性有限极强(即插即用各种模块)实际性能基准线显著优于(尤其在小目标和效率方面)

浩瀚之水的专栏 107

基于深度学习的智能监考系统(UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集)

行为检测与识别:能够自动识别考生在考试中的异常行为,如作弊、看手机、交头接耳等。实时监控:在考试期间,系统能够对考生的行为进行实时监控,及时发出警报。用户交互:通过简洁易用的UI界面,便于监考人员进行实时监控、查看警报和视频回放等操作。行为分析与反馈:系统能够识别出考生的违规行为,并提供反馈。本文详细介绍了如何构建基于YOLOv5的智能监考系统,从数据集的准备、YOLO模型的训练,到UI界面的设计与实现,展示了一个完整的深度学习监控系统。

YOLO 781

dumpsys activity 相关命令解析

相关命令: adb shell dumpsys activity-------------------AMS所有信息 adb shell dumpsys activity activities--------Activity组件信息 adb shell dumpsys activity services----------Service组件信息 adb shell dumpsys activity providers---------ContentProvider组件信息 adb shell dumpsys

hanhan1016的专栏 3122

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Activity相关问题

1、如何监听Activity的生命周期? 答:其实这个问题换一种说法就是------Activity的生命周期方法 onCreate()---onStart()-----onResume()----onPause()------onStop()--------onDestroy() 2、启动模式为singleTask的Activity,怎么使用到这个Activity中数据?还有一种问法...

gengbaolong的博客 189

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Activity的task相关 详解

http://www.cnblogs.com/yaozhongxiao/p/3366237.html http://www.cnblogs.com/yaozhongxiao/p/3366237.html http://www.cnblogs.com/yaozhongxiao/p/3366237.html Activity的task相关 详解   ta

506

Activity相关学习(一)

activity的启动模式、匹配规则

linwq8的博客 3740
下一篇: Service相关
githlb
博客等级 码龄9年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值