码迷,mamicode.com
首页 > 移动开发 > 详细

Android学习杂记-Activity基础知识

时间:2015-08-13 11:39:26      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

本文摘录自Tekkaman博客。

Activity介绍】

  一个Activity是一个应用程序组件,提供一个屏幕,方便和用户实现交互。每一个activity被给予一个窗口,在上面可以绘制用户接口。在一个Activity创建时,其实现的onCreate(Bundle savedInstanceState)方法将被系统回调,通常在这个方法里调用setContentView(View view)方法加载显示布局文件UI,并利用findViewById方法获取布局UI中的控件,对其修改数据或填充数据。

【Activity生命周期】

  一个应用程序通常由多个activity组成,在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。

Activity有四种本质区别的状态:

1. 在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态
2. 如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity在系统内存极端低下的时候将被杀掉。
3. 如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。
4. 如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。

技术分享

Activity生命周期的几个过程:

1. 启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2. 当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3. 当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4. 当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5. 用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6. 当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7. 用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

【创建Activity】

 继承Activity类及其子类,实现onCreate方法(还有onPause等)

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button mybtn = (Button) findViewById(R.id.mybtn);
    }
}

【在manifest文件声明你的activity】

//应用程序首次启动的Activity

<activity android:name="com.***.activity.MainActivity" >
     <intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
 </activity>
//其他Activity <activity android:name="com.***.activity.OtherActivity" ></activity>

【启动一个Activity】

最简单的方法:

Intent intent = new Intent(MainActivity.this, OtherActivity.class);
startActivity(intent);

Android学习杂记-Activity基础知识

标签:

原文地址:http://www.cnblogs.com/flytek/p/4726494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!