码迷,mamicode.com
首页 > 其他好文 > 详细

再来说说Activity

时间:2014-11-24 14:58:25      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:des   android   style   blog   http   ar   color   os   使用   

经过前面多天的了解,现在可以确信一点: activity提供了用户和程序交互的界面。

而且android里有四大组件:Activity,Service,BroadcastReceiver,ContentProvider.

 

Activity的使用,标准化流程大概如此:

  1. 继承android的Activity类
  2. 重写需要实现的方法
  3. 设置显示布局
  4. 在AndroidManifest.xml文件中,注册Activity

 

 

Activity的生命周期:

onCreate();   创建

onStart();    运行

onResume();  获取焦点

onPause();   失去焦点

onStop();   暂停

onDestroy();   销毁

onRestart();    重新导航到活动

 

如下图:(自己手绘一遍,感觉清晰一点儿)

bubuko.com,布布扣

 

Activity的四种状态

  • 活动状态 (Active / Running)   ------Actitivy处于界面最顶端
  • 暂停状态 (Paused)    -----Activity失去焦点,但对用户可见
  • 停止状态(不可见状态) ----Activity被完全遮挡,但保留所有状态和成员信息
  • 非活动状态(killed)   ------Activity被终止

 


创建 –> 销毁

onCreate() –> onStart() –> onResume() –> onPause() –> onStop() –>onDestroy()


从启动到后台,再到前台的生命周期

onCreate() –> onStart() –> onResume() –> onPause() –> onStop() –> onRestart() –> onStart() –>onResume()

(注意:这里的停止状态,activity被完全遮挡,但是保留所有状态和成员信息)


从启动到失去焦点,再到获取到焦点

onCreate() –> onStart() –> onResume() –> onPause() –>onResume()


玩一玩:

新建一个工程,只用改一改 MainActivity.java就可以了

package com.example.activitytest;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {
    private String Tag = "tag";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(Tag, "onCreat()");
    }
    
    @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()");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(Tag, "onRestart()");
    }
    
}

然后在LogCat中建立一个Filter

bubuko.com,布布扣

 

运行开始看Log

bubuko.com,布布扣

bubuko.com,布布扣

 

进行如下操作,切换一个Activity

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

 

bubuko.com,布布扣

bubuko.com,布布扣

此时画面为:

bubuko.com,布布扣

再点“返回”,即下图

bubuko.com,布布扣

bubuko.com,布布扣

此时回到手机主页面了,真的销毁了

bubuko.com,布布扣

 


我猜想,如果点击该activity如果弹出一个小的对话框,但是原来的activity还是可见的,那就会上演

onCreate() –> onStart() –> onResume() –> onPause() –>onResume()

总之先这样,如果以后发现不对的话,再来修改吧。

再来说说Activity

标签:des   android   style   blog   http   ar   color   os   使用   

原文地址:http://www.cnblogs.com/bluechip/p/4118596.html

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