展会信息港展会大全

Android四大组件之一:activity
来源:互联网   发布日期:2016-01-14 10:26:25   浏览:1640次  

导读:一:显示意图应用场景:在应用程序内部进行跳转。缺点:耦合性较高常规使用方式:在AndroidManifest中加入一个新的activity标签Intent...

一:显示意图

应用场景:在应用程序内部进行跳转。

缺点:耦合性较高

常规使用方式:

在AndroidManifest中加入一个新的activity标签

Intent intent = new Intent();

intent.setClass(getApplicationContent(),secondActivity.class);

startActivity(intent);

二:隐式意图

应用场景:在不知道某一应用程序的类名,包名,并且引用不到时。可以跳转到其他应用。带参数访问浏览器的实现。

优点:耦合性较低

注意:data与type不可以分开写,使用setDataAndType()方法

常规使用方式:

在AndroidManifest中加入一个新的activity标签

//默认格式//数据标识//数据类型

Intent intent = new Intent();

intent.setAction("动作");

intent.setDataAndType(Uri.parse("abc:123"),"list/person");//123为所携带的数据

startActivity(intent);

三:Intent传递数据

应用场景:传递数据,RP计算器。

Bundle:数据捆,打包传输

常规使用方式1:

第一个页面

Intent inent = new Intent();

intent.setClass(this,secondActivity.class);

Bundle bundle = new Bundle();//打包发送

bundle.putString("name",name);

intent.putExtra("maps",bundle);

startActivity(intent);

第二个页面

TextView tv = new TextView(this);

Intent intent = this.getIntent();

Bundle bundle = intent.getBundleExtra("maps");//获取打包数据bundle

String name = bundle.getString("name');//取出需要的数据

tv.setText(name);

setContentView(tv);

常规使用方式2:

创建对象类(javabean)Person

实现Serializable接口

private static final long serialVersionUID = 1L;

第一个页面

Intent intent = new Intent();

intent.setClass(this,secondActivity.class);

Person person = new Person(name);//序列化对象传递

intent.putExtra("person',person);

startActivity(intent);

第二个页面

TextView tv = new TextView(this);

Intent intent = this.getIntent();

Person p = (Person)intent.getSerializableExtra("person');

String name = p.getName();

四:Intent返回数据

常规使用方式

第一个页面

将startActivity(intent);改为startActivityForResult(intent,1000);//1000为请求码。理解为标识

实现onActivityResult方法

if(requestCode == 1000 && resultCode == Activity.RESULT_OK)

{

String rpText = data.getStringExtra("rpText");

Toast.makeText(this,rpText,1).show();

}

第二个页面

实现onBackPressed方法//返回键点击事件

去掉继承父类方法,因为继承后点击返回键将直接返回

Intent data = new Intent();

data.putExtra("rpText",text);

setResult(Activity.RESULT_OK,data);//将返回码改为0

this.finish();//即返回事件

五:Activity生命周期

onPause方法:暂停。在activity被另一个activity给盖住时(盖住一部分),调用onPause,跑到暂停状态。

onResume方法:焦点激活。在onPause状态时,把activity上的界面给关掉就返回到,焦点状态onResume。

onStop方法:停止。当activity在焦点时,有一个界面把activity完全盖住时,先调用onPause方法,再调用onStop方法 进入此状态。

onRestart方法:重启。当activity处于停止状态时,把上面的activity给关掉,这时候会调用 onRestart->onstart->onResume

常用使用方式

onCreate : 初始化界面参数时

onDestory ; 释放资源

onResume : 界面获取焦点时回调,让界面动起来

onPause : 来一个界面盖住了一部分activity,动作:停止动态刷新数据

六:横竖屏切换Activity的生命周期

默认情况下会重新加载activity,容易重新加载数据,造成数据丢失。如游戏。

具体流程:onPause -> onStop ->onDestory -> onCreate ->onStart ->onResume

避免横竖屏切换重新创建activity

在清单文件的activity节点中加入:android:configChanges="orientation|keyboardHidden "

七:任务栈

为了提高用户体验

一个应用程序包含多个activity

栈的顶部的activity会在界面中显示,获取焦点。

任务栈的特点:先进后出,后进先出。

八:杂七杂八

AndroidManifest文件中含有如下过滤器的activity组件为默认启动组件,应用程序启动时,系统自动调用它。

赞助本站

人工智能实验室

相关热词: android开发

相关内容
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港