Activity

一.什么是Activity?

简单点说,Activity就是就是给用户展示界面,能与用户进行交互的东西。Activity是Android应用的重要组件之一(另外三个是Service,BroadcastReceiver,ContentProvider)。Android应用的多个Activity组成Activity栈,当前活动的Activity位于栈顶。

二.创建.配置Activity

         1.创建Activity

创建一个Activity只要继承Activity类或Activity类的子类即可。如:

package com.example.activity;

import com.example.component.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;


public class MainActivity extends Activity implements OnClickListener {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);//设置该Activity要显示的View,就是要展示给用户的界面

	}

2.配置Activity

Activity创建好后要在AndroidMenifest.xml中的activity标签中进行配置,

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.component"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:persistent="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.activity.MainActivity"
            android:exported="false"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:launchMode="singleTask" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.activity.OtherActivity"
            android:label="新的Activity"
            android:launchMode="singleTask" >
        </activity>
    </application>

</manifest>

Activity通常指定以下几个属性:

name:该Activity实现类的类名。

icon:该Activity对应的图标。

label:该Activity对应的标签。

exported:Activity是否允许被其他应用调用。

launchMode:指定该Activity的加载模式:standard,singleTop,singleTask,singleInstance。默认采用standard。

     1.standard:每次创建Activity都会在Task栈顶创建一个新的Activity,不会创建新的Task栈。

     2.singleTop:每次创建Activity时,先检查Task栈顶的那个Activity是不是要启动的那个,如果是就使用该Activity,不创建新的Activity,否则就创建新的Activity。

     3.singleTask:每次创建Activity时,先检查Task栈是否存在该Activity,不存在就创建新的Activity。存在就判断该Activity是否位于栈顶,不在栈顶就把他上面的   Activity移出Task栈,使其进入栈顶,在栈顶的话就直接使用。例如:要从home页进去的几个页面,一下子回到home页,而且按返回会退出客户端,这是可以把home页的Activity的加载模式设为singleTask。

     4.singleInstance(不推荐使用):如果要启动的Activity不存在,会先创建一个新的Task,在创建要启动的Activity,并把它加入新的Task栈的栈顶。存在的话,无论该Activity在那个应用,那个Task栈中,系统都会把该Activity转到前台。当要再次启动该Activity时,如果上次启动的那个实例还没有退出,系统就会把还没退出的那个实例转到前台,而不创建新的Activity,这样Activity就可能没有处于初始状态,Activity里的变量的值不可知。


Activity还要指定一个或多个intent-filter(意图过滤器)去过滤哪些Intent能激活该Activity。

<intent-filter>
                <action android:name="android.intent.action.MAIN" />  指定该Activity为程序的入口,一个程序通常会包含多个Activity,
                                                                      但只有一个Activity会作为程序的入口

                <category android:name="android.intent.category.LAUNCHER" />  在程序列表中显示
            </intent-filter>


三.Activity的生命周期


四.启动和关闭Activity

Activity之间的跳转主要通过Intent控制。

1.Activity启动其他Activity的方法:

startActivity(Intent intent)

startActivityForResult(Intent intent,int requestCode)


2.关闭Activity的方法:

finish():  结束当前Activity

finishActivity(int requestCode):  结束以startActivityForResult(Intent intent,int requestCode)方法启动的Activity



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值