android核心组件Activity的跳转
来源:互联网 发布:新网域名续费价格 编辑:程序博客网 时间:2024/05/15 06:27
Activity简介
Activity是android应用程序的界面。
每个应用程序往往都存在多个Activity,即存在多个界面,各个界面之间根据一定的逻辑规则互换显示。
Activity的本质是一个java类,在一般情况下,可认为每个界面均是一个Activity,
也就是说Activity的数量与界面的数量是一一对应的。
Activity通常用于处理UI相关的操作,例如UI控件的加载、配置及响应等等。
从理论上说,在Activity中可以完成所有任务的处理,包括下载文件等,但并不是最合适的做法
界面的组成: Activity是用于处理界面的java类,即处理界面相关的程序,而界面外观的设计往往通过使用xml
进行配置,这些xml文件称之为“布局文件”,存放于项目的res文件夹下的layout系类文件夹中。
布局文件的加载:使用eclipse创建Activity时默认会重写Activity中的onCreate()方法,并在该方法中调用setContentView()方法
设置需要显示到界面的布局,实现界面的显示。
开发人员也可以通过程序创建需要显示的界面,但使用代码创建界面中各个控件的实现成本较高,一般不推荐。
在创建Activity项目时,开发工具默认会创建一个MainActivity,开发人员可以根据需求创建若干个Activity。
配置入口的Activity:
尽管任何一个android应用程序中都可以有若干个Activity,但一定仅有一个Activity作为入口Activity,
即新打开应用程序时,显示的第一个Activity。
在AndroidMainfest.xml文件中,可以为每个Activity都添加入口的配置代码,但在程序运行之前,系统会对Androidmainfest.xml文件从上至下解析,
当解析到第一个匹配项时即终止,也就是说第1个存在入口配置的Activity将被启动。
综上所述,当尝试启动一个Android应用程序时:
1 系统将解析该应用程序的AndroidMainfest.xml文件,尝试检索到入口Activity;
2 运行入口Activity的程序,即Activity的java类,并自动调用onCreate()方法,在
onCreate()方法执行的过程中,setContentView()方法将被调用,则setContentView()
参数对应的布局被加载,完成界面的初始化。
Androidmainfest.xml与系统组件
在Android中存在4个系统组件,分别是:Activity、Service(服务)、ContentProvider(内容提供者),
BroadcastReceiver(广播接收着),这些系统组件将由Android系统对他们进行管理和维护,开发人员不需要,也无权维护,但他们必须在AndroidMainfest.xml文件中的
<application>节点下进行配置,通常称之为注册。
直接启动Activity
激活Activity
Activity作为Android中的系统组件,其实例的创建、销毁过程都是由系统完成的。
每次Activity北显示,都有可能是“创建实例->显示”或者是“实例已存在,直接显示”
的过程,启动Activity,也被称之为激活Activity。
在Android中,激活系统组件需要使用Intent对象。
Intent(意图)在Android系统中主要用于:
激活系统组件;
在组件之间传递数据。
使用Intent激活Activity的步骤:
1 创建Intent对象,并通过构造方法Intent(Context packageContext,class<?>cls)设置需要激活的Activity;
2 调用startActivity(Intent intent)方法。
Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
启动带返回值的Activity
在一些应用场景中,需要在启动一个Activity并完成相关的业务之后,向他的启动源(
启动这个Activity的前一个Activity)返回一些信息,典型的例如验证用户操作。
在启动源中,需要调用startActivityForResult()方法激活新的Activity;
public void startActivityForResult(Intent intent,int requestCode)
当被启动的Activity返回结果时,启动源的onActivityResult()方法会被回调。
protected void onActivityResult(int requestCode ,int resultCode,Intent data)
在被启动的Activity中添加返回数据
在被启动的Activity中,开发人员应该将数据添加(封装)到Intent对象中,并调用setResult()方法。
public void setResult(int reslutCode,Intent data)
当被启动的Activity结束时,启动源中的onActivityResult()方法会被回调,结束Activity可调用finish()方法。
public void finish()
关闭Activity
当开发人员确定Activity已经不再需要再次使用时,可以调用finish()方法结束当前Activity;
当调用finish()方法时,Activity的onDestroy()方法会被回调,开发人员可以重写该方法,
并在该方法中实现释放资源的相关代码。
protected void onDestroy()
当Activity被关闭时,如果它是通过startActivityForResult()方法激活的,则启动源(激活塔德Activity )
的onActivityResult()方法将被回调。
开发人员也可以调用finishActivity()方法关闭Activity。
public void finishActivity(int requestCode)
该方法并不用于关闭自身,而是关闭通过startActivityForResult()激活的Activity,由于startActivityForResult()激活的Activity可能有多个,所以能被该方法关闭的Activity也可以有多个,finishActivity()的参数即为调用startActivityForResult()时的参数
requestCode.
如果requestCode可以匹配多个Activity,则这些Activity将全部被关闭。
定义一个应用程序级别的全局变量,使用集合类型记录下每个启动过的Activity,当需要全部关闭时,遍历该集合逐一关闭即可。
Activity是android应用程序的界面。
每个应用程序往往都存在多个Activity,即存在多个界面,各个界面之间根据一定的逻辑规则互换显示。
Activity的本质是一个java类,在一般情况下,可认为每个界面均是一个Activity,
也就是说Activity的数量与界面的数量是一一对应的。
Activity通常用于处理UI相关的操作,例如UI控件的加载、配置及响应等等。
从理论上说,在Activity中可以完成所有任务的处理,包括下载文件等,但并不是最合适的做法
界面的组成: Activity是用于处理界面的java类,即处理界面相关的程序,而界面外观的设计往往通过使用xml
进行配置,这些xml文件称之为“布局文件”,存放于项目的res文件夹下的layout系类文件夹中。
布局文件的加载:使用eclipse创建Activity时默认会重写Activity中的onCreate()方法,并在该方法中调用setContentView()方法
设置需要显示到界面的布局,实现界面的显示。
开发人员也可以通过程序创建需要显示的界面,但使用代码创建界面中各个控件的实现成本较高,一般不推荐。
在创建Activity项目时,开发工具默认会创建一个MainActivity,开发人员可以根据需求创建若干个Activity。
配置入口的Activity:
尽管任何一个android应用程序中都可以有若干个Activity,但一定仅有一个Activity作为入口Activity,
即新打开应用程序时,显示的第一个Activity。
在项目的根目录下,androidMainfest.xml文件中即配置了入口Activity。
<intent-fliter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter>
在AndroidMainfest.xml文件中,可以为每个Activity都添加入口的配置代码,但在程序运行之前,系统会对Androidmainfest.xml文件从上至下解析,
当解析到第一个匹配项时即终止,也就是说第1个存在入口配置的Activity将被启动。
综上所述,当尝试启动一个Android应用程序时:
1 系统将解析该应用程序的AndroidMainfest.xml文件,尝试检索到入口Activity;
2 运行入口Activity的程序,即Activity的java类,并自动调用onCreate()方法,在
onCreate()方法执行的过程中,setContentView()方法将被调用,则setContentView()
参数对应的布局被加载,完成界面的初始化。
Androidmainfest.xml与系统组件
在Android中存在4个系统组件,分别是:Activity、Service(服务)、ContentProvider(内容提供者),
BroadcastReceiver(广播接收着),这些系统组件将由Android系统对他们进行管理和维护,开发人员不需要,也无权维护,但他们必须在AndroidMainfest.xml文件中的
<application>节点下进行配置,通常称之为注册。
直接启动Activity
激活Activity
Activity作为Android中的系统组件,其实例的创建、销毁过程都是由系统完成的。
每次Activity北显示,都有可能是“创建实例->显示”或者是“实例已存在,直接显示”
的过程,启动Activity,也被称之为激活Activity。
在Android中,激活系统组件需要使用Intent对象。
Intent(意图)在Android系统中主要用于:
激活系统组件;
在组件之间传递数据。
使用Intent激活Activity的步骤:
1 创建Intent对象,并通过构造方法Intent(Context packageContext,class<?>cls)设置需要激活的Activity;
2 调用startActivity(Intent intent)方法。
Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
启动带返回值的Activity
在一些应用场景中,需要在启动一个Activity并完成相关的业务之后,向他的启动源(
启动这个Activity的前一个Activity)返回一些信息,典型的例如验证用户操作。
在启动源中,需要调用startActivityForResult()方法激活新的Activity;
public void startActivityForResult(Intent intent,int requestCode)
当被启动的Activity返回结果时,启动源的onActivityResult()方法会被回调。
protected void onActivityResult(int requestCode ,int resultCode,Intent data)
在被启动的Activity中添加返回数据
在被启动的Activity中,开发人员应该将数据添加(封装)到Intent对象中,并调用setResult()方法。
public void setResult(int reslutCode,Intent data)
当被启动的Activity结束时,启动源中的onActivityResult()方法会被回调,结束Activity可调用finish()方法。
public void finish()
代码 protected static final int REQUEST_CODE = 998; Intent intent = new Intent(getApplicationContext(),LoginActivity.class); startActivityForResult(intent,REQUEST_CODE); protected void onActivityResult(int requestCode,int resultCode,Intent data){ if(requestCode == REQUEST_CODE && resultCode == RESULT_OK){ String user = data.getStringExtra("username"); TextView userTextView =(TextView)findViewById(R.id.login_user); userTextView.setText(user); userTextView.setVisibility(View.VISIBLE); mLoginButton.setVisibility(View.GONE);} } EditText userEditText = (EditText)findViewById(R.id.edit); String user = userrEditText.getText().toString(); Intent intent = new Intent(); intent.putExtra("username",user); setResult(RESULT_OK,intent); finish();
关闭Activity
当开发人员确定Activity已经不再需要再次使用时,可以调用finish()方法结束当前Activity;
当调用finish()方法时,Activity的onDestroy()方法会被回调,开发人员可以重写该方法,
并在该方法中实现释放资源的相关代码。
protected void onDestroy()
当Activity被关闭时,如果它是通过startActivityForResult()方法激活的,则启动源(激活塔德Activity )
的onActivityResult()方法将被回调。
开发人员也可以调用finishActivity()方法关闭Activity。
public void finishActivity(int requestCode)
该方法并不用于关闭自身,而是关闭通过startActivityForResult()激活的Activity,由于startActivityForResult()激活的Activity可能有多个,所以能被该方法关闭的Activity也可以有多个,finishActivity()的参数即为调用startActivityForResult()时的参数
requestCode.
如果requestCode可以匹配多个Activity,则这些Activity将全部被关闭。
定义一个应用程序级别的全局变量,使用集合类型记录下每个启动过的Activity,当需要全部关闭时,遍历该集合逐一关闭即可。
0 0
- android核心组件Activity的跳转
- Android核心组件之Activity
- Android学习之核心组件Activity的生命周期
- 关于android核心组件Activity的一些总结
- Android 中Intent组件实现简单的Activity跳转
- Android四大组件(1.5)--Activity的跳转与传值
- Android 四大核心组件之Activity详解
- Android 四大核心组件之Activity
- Android四大核心组件之Activity
- android Activity的跳转
- Android-Activity之间显示和隐式跳转-Date 数据跳转-调用系统的的组件
- Android--(1)Activity组件的作用,如何创建Activity,如何启动Activity,以及Activity之间跳转的示例
- Android四大组件之一Activity详解之Activity之间的跳转方式
- Android的Activity组件
- Android 的 Activity 组件
- Android 的 Activity 组件
- Android 的 Activity 组件
- 核心组件之Activity
- Android性能优化——Layout的优化
- 如何在Flash(as3.0)文件中添加SCORM标准?
- OC学习之文件目录操作
- SaberRD之蒙特卡罗分析(一)
- UITableView 专辑
- android核心组件Activity的跳转
- iOS 中子类重写父类方法的时候应该什么时候写在 super 之前 什么时候写在 super 之后
- 字符串的基本概念
- 使用Matplotlib绘制正余弦函数、抛物线
- maven核心,pom.xml详解
- Delphi 7.0编写程序访问JAX-WS提供的WebService问题
- Andriod 手机和VM之间基于strongswan搭建IPsec VPN
- leetcode系列(66)Remove Duplicates from Sorted List,Remove Duplicates from Sorted List II
- java抓取网页数据获取网页中所有的链接实例分享