Android采用任务线(Task)的方式来管理Activity的实例。
在开发Android应用时,经常会涉及一些消耗大量系统内存的情况,例如视频播放、大量图片或者程序中开启多个Activity没有及时关闭等,会导致程序出现错误。为了避免这种问题,Google提供了一套完整的机制让开发人员控制 Android中的任务线。
Android系统中的任务线,类似于一个容器,用于管理所有的Activity实例。在存放Activity时,满足“先进后出 (First-In/Last-Out )"的原则。
但是使用任务线有以下缺点:
每开启一次页面都会在任务栈中添加一个Activity,而只有任务栈中的Activity全部清除出线时,任务线被销毁,程序才会退出。这样就造成了用户体验差, 需要点击多次返回才可以把程序退出。
每开启一次页面都会在任务栈中添加一个Activity还会造成数据冗余, 重复数据太多, 会导致内存溢出的问题(OOM)。为了解决任务栈产生的问题,Android为Activity设计了启动模式。
在实际开发中,应根据特定的需求为每个Activity指定恰当的启动模式。Activity的启动模式有4种,分别是standard、singleTop、singleTask和singlelnstance。在AndroidManifest.xml中,通过<activity>标签的android:launchMode属性可以设置启动模式。
android新创建Activity是需要在Manifest文件中进行注册的。
注册步骤如下:
一、新建一个类(*.class),继承自android.app.Activity类。
二、在res/layout目录下新建一个布局xml文件,文件名随意(只能包含小写字母数字或下划线),用来设置新Activity的布局(对于如何设置Activity的布局,可参考本站相关内容)。
三、打开AndroidManifest.xml文件,在里面进行一下新Activity的注册。
方法是双击AndroidManifest.xml这个文件,在eclipse的编辑区下面会出现这样的选项:
选择Application这个选项,将编辑区的滚动条拖到最下面,找到:
当前里面有的Activity是主Activity,我们点add按钮,选择Activity,这时你会发现上面的Application Nodes中多了一个Activity,点一下左面的新的Activity,确保它被选中,之后点击在右侧的Attributes for Activity中的Name项,在d出的对话框中输入新Activity的名字(就是你第一步新建的类的类名),输入名字时它有自动查找功能,之后点击保存,新的Activity就被注册了,我们也可以从AndroidManifest.xml的代码中看到新注册的Activity(当然你也可以直接加代码)。
之后去你第一步建的那个类中为新Activity添加OnCreate方法,在类中加上:
这样一个Activity就被创建好了。
Manifest是什么?
manifest是一种软件,属于AndroidManifest.xml文件,在简单的Android系统的应用中提出了重要的信息,它可以运行任何应用程序的代码。
只要是新建的Activity都需要注册如果只是简单注册,这样就行了
<activity android:name=".MainActivity"></activity>记得一定要加那个“.”
如果你要让你新注册的Activity是运行后第一个出现的页面,就需要这样
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)