您的位置:首页 > 其它

Activity

2015-04-27 17:01 357 查看
1.什么是Activity?

简单来讲就是一个界面。

比如:我们所看到的手机的桌面,拨号界面,短信界面,这些界面都是Activity。

Activity的特点

我们可以通过后退键来退出Activity,也可以通过HOME键返回到桌面,也可以在一个Activity中启动另一个Activity

2.Activity生命周期



启动应用:执行onCreate,onStart,onResume,

HOME键回到桌面:执行onPause,onStop

多任务键重新导航到这这个应用:执行onRestart,onStart,onResume

返回后退键:执行onPause,onStop,onDestroy

3.Activity数据传递

A.Intent参数传递

如:字符串的传递

①在activity_main.xml的主布局文件中,加入Button控件,并设置id。android:id="@+id/btnStartAty"

②新建Activity Name是BAty的Activity,并设置其中的TextView。android:id="@+id/tv"

③在MainActivity的onCreate方法中加入代码

findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent i = new Intent(MainActivity.this,BAty.class);
i.putExtra("data","Hello Android");//定义参数
startActivity(i);
}




④在BAty的onCreate方法前面声明TextView。

private TextView tv;


⑤在BAty的onCreate方法中加入代码

Intent i= getIntent();//获取到在MainActivity中定义的参数
tv= (TextView) findViewById(R.id.tv);
tv.setText(i.getStringExtra("data"));//获取到定义为“data”的字符串数据,传给tv(TextView)
B.Bundle数据包的传递

①在activity_main.xml的主布局文件中,加入Button控件,并设置id。android:id="@+id/btnStartAty"

②新建Activity Name是BAty的Activity,并设置其中的TextView。android:id="@+id/tv"

③在MainActivity的onCreate方法中加入代码

findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,BAty.class);
Bundle b = new Bundle();//定义一个Bundle
//用Bundle来存入很多种基本数据,通过这种方式传递给第二个Activity
b.putString("name","Java");//在Bundle中参数name
b.putInt("age",24);//在Bundle中参数age
//等等还有其他的数据类型,也可以嵌套Bundle
i.putExtras(b);//传入Bundle
//i.putExtra("data",b);//另一种出入Bundle方式
startActivity(i);
}


④在BAty的onCreate方法前面声明TextView。

private TextView tv;


⑤在BAty的onCreate方法中加入代码

tv= (TextView) findViewById(R.id.tv);
Intent i= getIntent();//获取到在MainActivity中定义的参数
Bundle data = i.getExtras();//获取Bundle
//Bundle data = i.getBundleExtra();//另一种获取Bundle方式
tv.setText(String.format("name=%s,age=%d",data.getString("name"),data.getInt("age")));//呈现出我们获取到的Bundle中的内容


扩展:在Bundle中,使用putExtras(Bundle extras)方法传对象时,用getExtra()方法来获取传入的值

                                使用putExtra(String name,Bundle value)方法传对象时,用getBundleExtra(String name)方法来获取传入的值
C.值对象传递

值对象:自定义的有数据类型的数据对象
详情见:Activity值对象传递

D.获取返回参数

详情见:Activity获取返回值

4.Activity的启动模式

standard模式:默认启动方式;在同一个任务栈里,创建不同的实例;通过后退键,可以弹出栈顶的实例,然后呈现上一个Activity的实例;通过这种方式,支持后退键的导航

singleTop模式:在同一个栈里,如果此时的Activity处于栈顶,那么只能创建一个实例,否则会创建一个新的实例

singleTask模式:在同一个栈里,singleTask模式启动会启动到第一次singleTask所创建的实例,弹回其他方式启动的实例

singleInstance模式:singleInstance只存在独立的任务栈里,一个任务栈只包括这么一个Activity,也只含有一个实例

详情见:Activity启动模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息