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

前言

最近一段时间一直在看博客,觉得大家能分享自己的学习经验是一种奉献精神,是一种不断坚持提升自我的途径。回想自己在偶然的机会下,开始从.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{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
	}

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
	}

	@Override
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
	}

	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
	}

	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值