Android学习笔记--从活动activity开始

来源:互联网 发布:北京和上海知乎 编辑:程序博客网 时间:2024/05/17 04:30

前言

最近一段时间一直在看博客,觉得大家能分享自己的学习经验是一种奉献精神,是一种不断坚持提升自我的途径。回想自己在偶然的机会下,开始从.NET开发走上android开发的道路,之前一直为了完成任务填鸭式去学习、去寻找捷径想快速的提升。这种急切的心理导致学习的过程中基础不牢,慢慢的陷入了苦恼中,严重的影响了工作的效率和工作的心情,那么现在我想开始从基础学习,打好根基;养成好的习惯,从博客开始,开始魔鬼般的训练,当然这里有点夸张,时间就像x沟一样挤一挤还是有的,难度就是要在不断学习的同时挤出时间坚持写博客.

接下来进入正题,我们从Activity开始....

1.什么是activity?

Activity 是用户接口程序,原则上它会提供给用户一个交互式的接口功能。它是 android 应用程序的基本功能单元。Activity 本身是没有界面的。所以activity类创建了一个窗口,开发人员可以通过setContentView(View)接口把UI放到activity创建的窗口上,当activity指向全屏窗口时,也可以用其他方式实现:作为漂浮窗口(通过windowIsFloating的主题集合),或者嵌入到其他的activity(使用ActivityGroup)。activity是单独的,用于处理用户操作。几乎所有的activity都要和用户打交道,当然用使用activity是必须要在AndroidManifest.xml中注册的。

2.activity生命周期

提到activity,不得不说的秘密就是activity的生命周期,我们通过一张图片可以清晰的看出来,如图2-1所示:
图片activity
图2-1

3.Activity 的状态及状态间的转换


在 android中,Activity 拥有四种基本状态:

1. Active/Runing一个新 Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。

2. Paused 当 Activity被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。

3. Stoped 当 Activity被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped状态。

4. Killed Activity被系统杀死回收或者没有被启动时处于 Killed状态。

通俗的说在一个Activity正常启动过程中,这些方法调用的顺序是onCreate -> onStart -> onResume;在Activity被kill掉的时候方法顺序是onPause -> onStop ->onDestroy这样完成了整个的生命周期;在这个生命周期中还有中断处理状态,例如电话来了,则是onPause-> onStop,恢复时onStart -> onResume。

当然有时候我们手机在运行一个应用程序的时候,有可能打进来电话发进来短信,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能,另外系统也不允许你占用太多资源,至少要保证一些功能(比如电话),所以资源不足的时候也就有可能被kill掉。

源代码:

<span style="font-family:Microsoft YaHei;font-size:14px;"> public class OurActivity extends Activity {     protected void onCreate(Bundle savedInstanceState);     protected void onStart();     protected void onResume();     protected void onPause();     protected void onStop();     protected void onDestroy();  }</span>
  1. protected void onCreate(Bundle savedInstanceState)一个 Activity 的实例被启动时调用的第一个方法。一般情况下,我们都覆盖该方法作为应用程序的一个入口点,在这里做一些初始化数据、设置用户界面等工作。大多数情况下,我们都要在这里从 xml 中加载设计好的用户界面。例如:
    <span style="font-family:Microsoft YaHei;">setContentView(R.layout.main);</span>
  2. protected void onStart()该方法在 onCreate()方法之后被调用,或者在 Activity Stop状态转换为 Active状态时被调用

  3. protected void onResume() Activity Pause状态转换到 Active状态时被调用。

  4. protected void onResume()在 Activity 从 Active 状态转换到 Pause 状态时被调用。

  5. protected voidonStop() Activity Active状态转换到 Stop状态时被调用。一般我们在这里保存 Activity的状态信息。

  6. protected void onDestroy() Active被结束时调用,它是被结束时调用的最后一个方法,在这里一般做些释放资源,清理内存等工作。


4.创建一个activity

源代码:
<span style="font-family:Microsoft YaHei;font-size:14px;">public class ShowActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();}@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.onRestart();}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();}}</span><span style="font-size:18px;"></span>
AndroidManifest.xml 中通过 <activity> 节点说明 Activity,
<span style="font-family:Microsoft YaHei;"><activity android:name=".ShowActivity" android:label="@string/app_name">  <intent-filter>  <action android:name="android.intent.action.MAIN" />  <category android:name="android.intent.category.LAUNCHER" />  </intent-filter>  </activity></span>
以上就是今天的学习,一切从小事做起,从点滴开始,我相信不积跬步,无以至千里。不积小流,无以成江海。
也就是在今天新加坡国父李光耀去世了,享年91岁,有人说时势造英雄,有人说英雄造时势,谁有说得准呢,只有经历过了才有资格去做评论,正像他说的那样“盖上棺材,然后再评价这个人。在双眼闭上前,我可能还会做些荒唐事。”一代传奇,灿然陨落,我们更多的是去感悟人生的意义和价值.....








0 0
原创粉丝点击