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方法中加入代码
④在BAty的onCreate方法前面声明TextView。
⑤在BAty的onCreate方法中加入代码
①在activity_main.xml的主布局文件中,加入Button控件,并设置id。android:id="@+id/btnStartAty"
②新建Activity Name是BAty的Activity,并设置其中的TextView。android:id="@+id/tv"
③在MainActivity的onCreate方法中加入代码
④在BAty的onCreate方法前面声明TextView。
⑤在BAty的onCreate方法中加入代码
扩展:在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启动模式
简单来讲就是一个界面。
比如:我们所看到的手机的桌面,拨号界面,短信界面,这些界面都是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启动模式
相关文章推荐
- android,返回前一个activity的简单实现 及activity跳转的简单操作
- Android_View,ViewGroup,Window之间的关系 android activity,intent,service是什么关系?
- android service 通过broadcast通知Myreceiver 启动activity
- 【Android 个人理解(九)】Activity的生命周期方法的深入理解
- android开发中,有关TABhost中各个子Activity跳转的问题(帮大忙)
- Activity生命周期
- jbpm4.4根据流程定义获取所有的流程节点Activity
- 什么时候用Application的Context,什么时候用Activity的Context
- Android之Activity与Service通信
- Activity生命周期,状态保存恢复(经典)
- android面试03--通过startActivity(intent)调用Activity中的方法与new Activity调用Activity中方法的区别
- Activity简单几步支持向右滑动返回
- Activity打开WebView一个小例子
- android开发—Fragment中onCreateView()和onActivityCreated()的区别
- 安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
- 何在 Android 程序中禁止屏幕旋转和重启Activity
- 关于Activity切换动画::overridePendingTransition函数
- Android onActivityResult
- Activity中需要重写的方法
- Android开发:使用序列化接口Parcelable、Serializable实现Activity间传递复杂数据类型参数