Activity


Activity:每一个Activity对象是一个单独的实体,在我们的应用程序中可能会有多个Activity,但是每次只有一个能展现在用户面前。

一、Activity的使用
复写onCreate()方法:将会在Activity运行时被Android系统调用,因此在这里我们需要把我们的初始化信息处理完毕:构建UI界面、加载资源文件等。

注册Activity:每个Activity都需要在AndroidManifest.xml文件中注册

    <application>
        <activity
            android:name="com.example.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
		<!-- 代表应用程序最先启动这个Activity -->
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>


二、Activity的样式(theme)
<activity android:theme=“@android:style/Theme.Dialog”>//对话框样式
<activity android:theme=”@android:style/Theme.NoTitleBar”>//没有title
<activity android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”>//占满整个屏幕
<activity android:theme=” @android:style/Theme.Light”>//背景颜色变成白色
<activity android:theme=” @android:style/Theme.Light.NoTitleBar”>
<activity android:theme=” @android:style/Theme.Light.NoTitleBar.Fullscreen”>
<activity android:theme=” @android:style/Theme.Black”>//背景颜色变成黑色
<activity android:theme=” @android:style/Theme.Black.NoTitleBar”>
<activity android:theme=” @android:style/Theme.Black.NoTitleBar.Fullscreen”>
<activity android:theme=” @android:style/Theme.Wallpaper”>//背景和主题壁纸一致
<activity android:theme=” @android:style/Theme.Wallpaper.NoTitleBar”>
<activity android:theme=” @android:style/Theme.Wallpaper.NoTitleBar.Fullscreen”>
<activity android:theme=” @android:style/Theme.Translucent”>//透明状态
<activity android:theme=” @android:style/Theme.Translucent.NoTitleBar”>
<activity android:theme=” @android:style/Theme.Translucent.NoTitleBar.Fullscreen”>
<activity android:theme=” @android:style/Theme.Panel”>
<activity android:theme=” @android:style/Theme.Light.Panel”>



三、Activity的生命周期
Activity在运行时会遇到一些突发事件的影响,比如:正在使用一个Activity,突然来了一个电话,这时候你的应用就要具备处理这个突发事件的能力,要处理这些突发事件,就需要用到Activity的生命周期。
Activity的7个生命周期函数(系统调用):

  1、onCreate():第一次调用Activity时会被调用。

  2、onStart():当Activity可以被用户看到时会被调用。

  3、onResume():当Activity可以获得用户焦点时会被调用。

  4、 onPause():当启动另一个Activity,这个Activity暂停时会被调用。

  5、onStop():当启动另一个Activity,这个Activity不可见时会被调用。但如果另一个Activity是对话框,这个Activity并没有被完全遮挡,那么这个方法不会被调用。

  6、 onDestroy() :当执行finish方法或者系统 资源不够用时会调用此方法销毁Activity。

  7、 onRestart () :当Activity已经存在但是被完全遮住了时,再次显示就不再调用onCreate创建,而是直接调用onRestart方法显示出来。


四、Activity启动另一个Activity时生命周期函数的调用顺序:

  FirstActivity:onCreate、onStart、onResume

  FirstActivity:onPause//启动另一个Activity

  SecondActivity:onCreate、onStart、onResume

  FirstActivity:onStop

  SecondActivity:onPause//点击返回

  FirstActivity:onRestart、onStart、onResume

  SecondActivity:onStop、onDestroy


五、保存Activity状态
复写onSaveInstanceState()方法,在onStop方法调用之前调用,但是可能在onPause之前或者之后,可以把信息保存到Bundle里面。如果点击手机按键返回按钮,则不会调用此方法。
onCreate()方法里面的Bundle和onSaveInstanceState()方法里面的Bundle是同一个,如果之前没有保存信息取出的Bundle为空。

实例:
private final static String CONTENT = "content";

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_hello_world);
		if (savedInstanceState != null
				&& savedInstanceState.containsKey(CONTENT) != null) {
			Log.i("MyInfo", savedInstanceState.containsKey(CONTENT));
		}
	}

	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		outState.putString(CONTENT, "hello");
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值