初识Activity

Activity,Android四大组件(Activity,Service,Content Provider,BroadcastReceiver)之一。

作为一个应用程序组件,Activity最大的作用就是为用户提供一个屏幕,并在屏幕上与用户进行交互。

众所周知,任何一款吸引用户眼球的应用,都是因为拥有一个漂亮的UI界面,而Activity恰好是UI的承载者。因此,Activity于开发者来说,尤为重要。

学习Activity,我们首先要知道如何创建Activity:第一步,新建一个类,继承android.app.Activity;第二步,在AndroidManifest.xml清单文件中注册Activity,在application标签下添加一个activity标签,如: <activity android:name="com.wzd.mywallet.MenuActivity">,如果该Activity是本应用程序的入口,则需要在activity标签下添加一个intent-filter标签,如: 


<intent-filter >
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>


Activity创建完之后,我们就可以使用Activity了,在使用的时候,我们需要特别注意Activity的生命周期。因为Activity是系统进行管理控制的,我们只需要重写某些方法,系统在管理Activity的时候会根据生命周期自动调用这些方法。

下图为Google提供的一张描述Activity生命周期的图片:

在这张图片中,我们只需要注意七个方法的使用时刻就行了。

onCreate方法,Activity被创建的时候调用。

onStart方法,界面被创建的时候调用,onStart方法执行完毕后,我们就可以在屏幕上看到界面了。

onResume方法,可以操作界面时调用,onResume方法执行完毕后,我们就可以通过屏幕对Activity进行操作了。

onPause方法,Activity被部分遮盖时调用。

onStop方法,Activity完全被遮盖或退到后台时调用。

onDestroy方法,Activity被销毁时调用。

onRestart方法,从onStop状态回到运行状态,需要执行的第一个生命周期。

一个Android应用中不可能只有一个Activity,但一个屏幕在同一时刻只能显示一个Activity,因此,我们需要在Activity之间进行切换,这就需要Activity的跳转。

在Android开发中,我们使用Intent(意图)来完成Activity的跳转。

Intent指定从一个Activity跳转到另一个Activity,同时Intent还能携带数据,实现Activity之间的通信。如:


Intent intent = new Intent();
// 设置源Activity和目标Activity
intent.setClass(getApplicationContext(),EditBillActivity.class);
// 定义一个Bundle数据对象,Bundle中的数据以键值对的形式存在
Bundle bundle = new Bundle();
// 向Bundle中放入数据
bundle.putString("remark", remark);
bundle.putDouble("cost", cost);
bundle.putInt("bill_id", bill_id);
bundle.putInt("year", year);
bundle.putInt("month", month);
// 将Bundle对象放入intent中
intent.putExtras(bundle);
// 启动目标Activity

startActivity(intent);


这里Intent借助了Bundle来传递数据,Intent也可以直接使用putExtras(String key, Object value)方法传递数据。

Activity之间的跳转有两种形式。一种是如上面的startActivity(Intent intent);另一种则是本Activity需要启动另外一个Activity去获取数据,并返回结果,启动方式为:startActivityForResult(Intent intent, int requestCode)。这种启动方式需要设置一个请求码,用来标注需要完成的哪一种业务逻辑。用这种方式启动的Activity需要通过调用setResult(int resultCode, Intent intent)来设置返回,其中resultCode用来标注是哪一个Activity返回的结果,intent携带数据。并且启动Activity的那个Activity需要重写onActivityResult(int requestCode, int resultCode, Intent intent)方法来处理业务逻辑,利用requestCode和resultCode可以唯一确定指定业务逻辑。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值