Android学习笔记1:Activity
来源:互联网 发布:java 断点快捷键 编辑:程序博客网 时间:2024/06/07 00:39
这周果然不出所料的没有继续安卓CRM开发,而是去帮客户做DEMO了。不过说好这周开始研习官方API Guides的,也不能食言了,文章我以自己的观点和想法写出,也许不严谨,但注重易于理解,所以各位大牛们也别太吹毛求疵了,再次谢过 Orz
按照官方的树形菜单,我从上到下的学习,今天看的是Activity模块。
什么是Activity
Activity是一个用于与用户交互的界面,既然为界面自然就是看的见的,我们可以理解为他是一个画板,在其上可以绘制各种UI组件,这个画板可能占据手机整个屏幕,也可能只占据了某一小块。而一个程序,就是由多个Activity链式组成的。
如何创建Activity
一个Activity由两部分组成,继承了Activity的类和一个XML布局文件。
以下是一个继承了Activity的Activity子类
public class TestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }}
onCreate方法是必须实现的一个方法,在此方法总需要调用setContentView方法设置布局文件,其中R.layout.main就是布局文件的唯一标识(R文件是Android工程自动生成的文件,在此可以不用理会),以下是布局文件main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /></LinearLayout>
如何把Activity注册进入程序中
Android程序有一个主要的配置文件AndroidManifest.xml,当新建一个Activity后,需要在该文件中进行配置,见下图
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.rex" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".TestActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
其中的一个activity标签就代表了一个Activity。
如何启动一个Activity
启动Activity,我们调用startActivity()方法,在其中传入一个Intent(Intent可以理解为意图,在此可以先理解成我们想启动哪个Activity)
Intent intent = new Intent(this, SignInActivity.class);startActivity(intent);
当然我们也可以给新启动的Activity传入参数,同样参数的携带者还是intent(可以理解为带着礼物去拜访某人)
Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);startActivity(intent);
如何关闭一个Activity
关闭Activity很简单,只需要调用finish()即可结束当前的Activity,什么叫“当前”,就是你现在在手机上看到的画板(还记得刚才把Activity比喻成画板吗?)。当然如果你信得过Android系统,你大部分时间是没必要主动调用finish方法的,因为系统会按照Activity生命周期(生命周期会在下面介绍)和内存消耗情况自行处理。
Activity生命周期(重点)
月有阴晴圆缺,海有潮涨潮落,任何事物都讲究一个有始有终,Activity自然也不能免俗。Activity的生命周期可分为:
Create:创造,第一次调用Activity,就好比出生
Start:开始,调用Create后会立即进入该周期,同时被Stop的Activity再次展现再最前面也会进入该阶段
Resume:被Pause的Activity再次展现在最前面的时候进入该阶段
Pause:当另一个Activity进入程序,部分遮挡了你当前的Activity。
Stop:当另一个Activity进入程序,完全遮挡了你当前的Activity。
Destroy:销毁,就等于死亡,如果再次调用该Activity会进入Create阶段
六个阶段
由于有以上6个生命周期,所以Activity类完全可以接管该6个阶段,对应到代码中即为
public class TestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // The activity is being created. } @Override protected void onStart() { super.onStart(); // The activity is about to become visible. } @Override protected void onResume() { super.onResume(); // The activity has become visible (it is now "resumed"). } @Override protected void onPause() { super.onPause(); // Another activity is taking focus (this activity is about to be "paused"). } @Override protected void onStop() { super.onStop(); // The activity is no longer visible (it is now "stopped") } @Override protected void onDestroy() { super.onDestroy(); // The activity is about to be destroyed. }}
下面附上一副官方的Activity生命周期图,图文并茂更有助于理解
今天就写到这里,一开始以为Activity是基础中的基础应该很简单,不过读着读着发现就因为其基础,所以反而内容和多,同时该模块又是Android四大天王之一,可见其重要性。该模块可能会写个两到三篇,同时写过的文章可能会反复修改,多多斟酌,多多感悟嘛。
- android 学习笔记 1 activity
- android学习笔记1(activity)
- Android学习笔记1:Activity
- Android学习笔记----Activity
- android学习Activity笔记
- Android学习笔记-Activity
- Android 学习笔记--Activity
- [Android学习笔记1]Activity+Layout+Button
- Android学习笔记1 创建一个activity
- Android学习笔记(1)--Activity
- android学习笔记1——Activity
- android学习笔记之Activity
- Android学习笔记:Activity-Spinner
- android开发学习笔记--activity
- Android学习笔记 - Activity篇
- Android学习笔记:Activity-Spinner
- Android学习笔记:Activity-Spinner
- Android学习笔记:Activity-Spinner
- 设计包含min函数的栈[数据结构]
- 顺序查找
- HOJ 1898 Babelfish(Trie树)
- 二元树中和为某一值的所有路径[数据结构]
- 不错的html5开发网站
- Android学习笔记1:Activity
- 查找最小的k个元素[算法]
- 异步上传文件并获得返回值(完全跨域)
- net 命令 (拷贝)
- Web开发学习方法
- select 自动提交 的js
- const_cast 用法
- js跨域
- android 滑轮多选