android4种activity启动模式,activity启动的四种模式
应用程序崩溃是因为应用程序使用的内存超过了为系统分配的最大堆大小。对象分配发生在堆上,系统分配给每个APP应用的最大堆大小是固定的。
假设发生这种情况。如果您的应用程序启动另一个活动,您的应用程序将崩溃,并且您的应用程序使用的内存超过了系统分配的最大堆大小。然后,这个时候的做法就是优化算法等等。但即使优化,这个问题还是会出现。
通过在新的独立进程中运行已启动的活动,可以避免已启动的活动实例占用APP应用的堆大小。这可以通过android:process来实现。这样就解决了APP应用因为消耗内存超过系统最大堆大而崩溃的问题。
另外,如果将活动的启动模式设置为android:singleInstance,那么即使用户多次调用该活动,系统中也会只有一个实例并且会多次创建,这也是一种节省内存的方式。
做法如下。
实际要求
创建一个应用程序来启动HelpActivity。
2.HelpActivity设置在独立的进程中执行。
3.helpActivity仅限于在独立任务中工作。
4.启动并帮助Activity,确保无论用户调用多少次,在系统上运行时都只有一个实例。
验证HelpActivity在DDMS中实际存在的进程与启动它的APP应用程序的进程是否相同。
-具体实践内容
构成:
1.android:TaskAffinity确保活动运行在一个独立的任务上。
2.Android 3360启动模式= SingleInstance 保证了无论用户启动多少次,始终只有一个活动实例。
package=com.processtest
Android:版本代码=1
Android:版本名称= 1.0
Android: minsdkversion=8
Android : targetsdkversion= 18 /
Android:允许备份= true
Android:icon= @ drawable/IC _ launcher
Android:level= @ string/app _ name
Android : theme= @ style/app theme
Android:name= com . process test . main activity
Android:level= @ string/app _ name
Android : name=。帮助活动
Android:启动模式=“单实例”
Android:process=:a _ separate _ process
Android:task affinity= com . process test . myhelpractice /
代码面:
1.设置启动模式标识符意图。FLAG_ACTIVITY_NEW_TASK,您必须实现单实例活动。
publicsclassmainactivityextendsactive {
@覆盖
保护性视频创作(bundlesavedinstancestate)。
super . oncreate(savedinstancestate;
set content view(r . layout . activity _ main;
inital(;
}
私人语音初始化(
{
Button start=(Button)findviewbyid)r . id . start help;
start . setonclicklistener(new view . onclick listener))。
@覆盖
Public void onclick (viewv) {
//todo自动生成方法存根
intent intent=new intent(main activity . this,help activity . class);
intent . set flags(intent . flag _ activity _ new _ task);
开始活动
(意图);
}
});
}
@覆盖
public boolean onCreateOptionsMenu(菜单菜单){
//膨胀菜单;如果操作栏存在,这会将项目添加到操作栏中。
getMenuInflater()。inflate(R.menu.main,menu);
返回true
}
}
实际结果:
在DDMS,显示:
长按Home键:
以上信息可以说明:
1.两者在不同的进程中运行。
2.两者变成了两个不同的应用Home键显示的结果可以看到。
参考资料:
http://Android-developers . blogspot . com/2011/03/memory-analysis-for-Android . html
http://developer.android.com/tools/debugging/ddms.html
http://stack overflow . com/questions/7142921/用法-机器人流程
Android开发-活动启动模式
在Android的开发中,要开始一个新的活动,我们可以使用startActivity或者startActivityForResult,Android系统使用stack来管理一个APP的页面显示和保存。
Android中活动启动模式详解
在Android中,每个界面都是一个活动,界面切换操作实际上是几个不同活动之间的实例化操作。在Android中,一个活动的启动方式决定了该活动的启动和运行方式。一;一个.
Android启动模式详解
最近群里有朋友问我,四种启动活动模式是什么意思?因为项目刚开始比较忙,所以简单解释了一下,Api文档里说的也只是泛泛而谈。这里做个说明,让更多的朋友开启活动模式。
[转]安卓总结系列:活动启动模式(lauchMode)
【转折】安卓总结系列:活动启动模式(lauchMode)本来想写一篇关于活动中启动模式的文章,后来发现网上有人已经总结的相当不错了,就在这里直接引用,补充一些自己的。
AndroidActivity启动模式
活动启动模式。概念活动启动模式定义了活动启动的规则,决定了活动的实例是否被创建和重用。属性活动启动.
Android组件系统活动启动模式分析
本文主要分析Activity的启动方式和使用场景。1.活动启动模式分析1 .标准标准模式,系统默认的启动模式。当开始一个活动时,系统总是创建一个新的活动。
意向标志和堆栈之间的活动模式和相关性分析
http://blog.csdn.net/vipzjyno1/article/details/25463457启动模式标志堆栈任务目录(?)[]栈栈是什么?
活动启动模式及意向标志与堆栈的相关性分析
在http://blog.csdn.net/vipzjyno1/article/details/25463457,学习Android的过程中,Intent是最常用的Android for in-process或progress。
Android-3活动启动模式
活动模式Android:launch mode= single task * standard每次都会创建一个新实例——TaskID不变,ActivityID变。
随机推荐
第二届短跑运动员常务会08
今天:优化日历界面明天:将日历界面与主程序结合。
斯坦福大学自然语言处理研究笔记3:最小编辑距离
一、最小编辑距离的定义最小编辑距离旨在定义两个字符串之间的相似度。定义相似性可用于拼写校正、计算生物学中的序列比对、机器翻译、信息提取、语音识别等。编辑距离只是.
TableViewCellcommaTableViewcomma单元格
在本研究中,在基于导航的应用程序模板中,使用RootViewController类设置操作方法,并使用UITableView的属性值。导航控制器控制是一个程序。
LightOjlowbar1265生存岛
标题链接标题:住在一个岛上,岛上有T老虎和D鹿。每天会随机出现两个生物(包括你自己)。如果一只老虎出现,你就会被吃掉。如果是两只老虎,两只老虎会一起死。否则,你会活下来。
Linux下p2p聊天功能的实现
Linux下p2p聊天功能的实现细节做一件事,做好。今天,我很闲。我觉得对于网络编程初学者来说,写一个P2P聊天功能的小程序是很有用的。
核心数据入门-备用
简介核心数据是iOS5之后出现的一个框架。它提供了对象关系映射(ORM)的功能,即可以将OC对象转换为数据,保存在SQLite数据库文件中,将数据库中存储的数据还原为OC对象。
Python语言学习7——数据类型和变量
Integer python可以处理任何大小的整数,包括负整数。程序中的表达方式和数学中的一样。因为计算机使用二进制,有时候用十六进制表示整数更方便。十六进制数以0x浮点数为前缀,简单小数直接还原。
WPF的WndProc:WPF的皮肤再生
原文:WPF剥皮3: WndProc在WPF。在上一篇文章中,我提到了WndProc可以处理所有通过表单的事件,但是没有具体的处理方法。事实上,在WPF,如果你想用WndProc处理办公室.
他们的定义对话框
(1)你需要准备自己的自定义对话框样式,是布局文件?xml版本=1.0 编码=utf-8 ?
测试——jmeter的性能,设置环境,记录脚本,参数化jmeter CSV。
1.设置Jmeter jdk环境1.http://www . Oracle . com/tech network/Java/javase/downloads/index . html,下载jdk并直接安装。