【译】Android系统简介—— Activity_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 【译】Android系统简介—— Activity

【译】Android系统简介—— Activity

 2014/8/31 17:54:53  萝卜根  程序员俱乐部  我要评论(0)
  • 摘要:续上一篇,继续介绍Android系统。上一篇:【译】Android系统简介本文主要介绍构建Android应用的一些主要概念:ActivityActivity是应用程序中一个单独的有UI的页面(screen),例如:在email应用中,会有一个activity用来显示email的列表,还有activity用来显示具体的email。通常来说,只要有用户交互的应用,就会包含至少一个activity。一个应用可以包含多个activity,每个activity之间可通过intent进行交互
  • 标签:android系统 android 简介 Activity

续上一篇,继续介绍Android系统。上一篇: 【译】Android系统简介

本文主要介绍构建Android应用的一些主要概念:

Activity

 Activity是应用程序中一个单独的有UI的页面(screen),例如:在email应用中,会有一个activity用来显示email的列表,还有activity用来显示具体的email。通常来说,只要有用户交互的应用,就会包含至少一个activity。

一个应用可以包含多个activity,每个activity之间可通过intent进行交互,关于intent会在本文后面进行介绍。

一个activity一般继承自android.app.Activity, 所有的activity都被onXX()方法管理着:

  • onCreate() - 设置activity的初始化方法
  • onStart() - 当activity变可见的时候会调用此方法;当activity停止并重启后,会再次调用此方法;
  • onResume() - 当activity可见,并准备接收和处理用户输入时调用此方法;
  • onPause() - 当activity将要失去焦点的时候,会调用此方法;此方法会快速的保存为提交的数据,停止CPU密集计算,为activity进入后台运行而准备;
  • onStop() - activity失去焦点,此方法被调用。用来释放应用程序使用的资源;
  • onRestart() - 当activity停止后,被再需要的时候,调用此方法;此方法会恢复之前activity的状态;
  • onDestroy() - 当activity被注销的时候,调用此方法;代表activity生命周期结束; 

activity生命周期:

activity生命周期示例

在strings.xml添加

<string name="CodeProjectWebURL">http://www.codeproject.com</string>

重写activity的这些方法:

public class FirstActivity extends Activity {

    private WebView oWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        oWebView = (WebView)findViewById(R.id.webView);
        oWebView.loadUrl(getString(R.string.CodeProjectWebURL));
    }

    /** Called when the activity is about to become visible. */
    @Override
    protected void onStart() {
        super.onStart();
        Toast.makeText(getApplicationContext(), "Inside onStart", Toast.LENGTH_LONG).show();
    }

    /** Called when the activity has become visible. */
    @Override
    protected void onResume() {
        super.onResume();
        Toast.makeText(getApplicationContext(), "Inside onResume", Toast.LENGTH_LONG).show();
    }

    /** Called when another activity is taking focus. */
    @Override
    protected void onPause() {
        super.onPause();
        Toast.makeText(getApplicationContext(), "Inside onPause", Toast.LENGTH_LONG).show();
    }

    /** Called when the activity is no longer visible. */
    @Override
    protected void onStop() {
        super.onStop();
        Toast.makeText(getApplicationContext(), "Inside onStop", Toast.LENGTH_LONG).show();
    }

    /** Called just before the activity is destroyed. */
    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(getApplicationContext(), "Inside onDestroy", Toast.LENGTH_LONG).show();
    }

}

Layout添加WebView控件:

<WebView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/webView"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true" />

运行效果:

在onCreate()方法调用后,onStart()方法便被调用,通过Toast的消息我们可以看到;

当其他的activity被激活时(比如按home键),当前的activity就会调用onPause()方法,然后onStop()方法立即也被调用;

onResume()被调用的场景:当应用正在运行时,来了个电话,当前应用就会失去焦点(onPause, onStop),电话应用就会获得焦点;当打完电话后,应用又重新获得焦点,这时候onResume()方法被调用;

当activity结束(调用onFinish方法)或者系统为了内存空间临时销毁activity实例的时候,onDestroy()方法被调用。

 

PS:还是需要把activity, service, content provider, intent, fragement分拆成不同文章,实在是有点长

 

备注: 

1. 本文在翻译过程中有所删减;

2. 关键词汇没有翻译,以免混淆理解

3. 原文:http://www.codeproject.com/Articles/802449/Article

本文版本历史:

初始版  2014.08.31

上一篇: 第一招:自己动手写HTTP框架介绍 下一篇: 没有下一篇了!
发表评论
用户名: 匿名