Android四大组件之Activity

Android四大组件之Activity

Android的四大组件分别为:ActivityServiceBroadcastReceiverContentProviderActivityAndroid应用最常见的组件之一,不同的Activity向用户呈现不同的操作界面。Android应用的多个Activity组成Activity栈,当前活动的Activity位于栈顶。Activity主要负责与用户交互并向用户呈现应用状态。当Activity处于Android应用中运行时,同样受系统的控制,有其自身的生命周期,接下来就写一些我对Activity的了解。

1.配置Activity

AndroidManifestXml文件中配置。只要为<application.../>元素添加<activity.../>子元素即可配置Activity

2.启动、关闭Activity

(1)Activity启动其他Activity有如下两种方法:

A.startActivityIntent intent):启动其他Activity

B.StartActivityForResultIntent intentint requestCode):以指定的请求码(requestCode)启动Activity,而且程序将会获取新启动的Activity返回结果(通过重写onActivityResult(...)方法来获取)。

注:IntentAndroid应用里各组件之间通信的重要方式,一个Activity通过Intent来表达自己想要启动哪个组件,被启动的组件既可是Activity组件,也可是Service组件。

(2)Activity关闭的两种方法:

A.finish():结束当前Activity

B.FinishActivityint requestCode):结束以startActivityForResultIntent intentint requestCode)方法启动的Activity

3.Activity的生命周期

随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。

Activity大致会经过如下四种状态:

A.运行状态:当前Activity位于前台,用户可见,可以获得焦点;

B.暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点;

C.停止状态:该Activity不可见,失去焦点;

D.销毁状态:该Activity结束,或Activity所在的进程被结束。

下图为Activity的生命周期及相关回调方法:

 

下边的例子可以让我们更加了解Activity生命周期的使用:

public class LifecycleActivity extends Activity {  

    private static final String TAG = "LifecycleActivity";  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        Log.i(TAG, "onCreate");  

    }  

    @Override  

    protected void onRestart() {  

        super.onRestart();  

        Log.i(TAG, "onRestart");  

    }  

    @Override  

    protected void onStart() {  

        super.onStart();  

        Log.i(TAG, "onStart");  

    }  

    @Override  

    protected void onResume() {  

        super.onResume();  

        Log.i(TAG, "onResume");  

    }  

    @Override  

    protected void onPause() {  

        super.onPause();  

        Log.i(TAG, "onPause");  

    }  

    @Override  

    protected void onStop() {  

        super.onStop();  

        Log.i(TAG, "onStop");  

    }  

    @Override  

    protected void onDestroy() {  

        super.onDestroy();  

        Log.i(TAG, "onDestroy");  

    }  

}  

在该程序中:

1onCreate(Bundle savedInstanceState) :创建Activity时被回调,该方法只能被调用一次;

2 onRestart():重新启动Activity时调用;

3onStart() :启动Activity时调用;

4onResume() :恢复Activity时被调用,在onStart()方法后一定会回调onResume()方法;

5onPause() :暂停Activity时被调用;

6onStop() :停止Activity时被调用;

7onDestroy() :销毁Activity时被回调,该方法只会被调用一次。

posted on 2017-06-16 14:16  大脸猫~蜜  阅读(201)  评论(0)    收藏  举报