1.活动是什么:四大组件之一
(1)定义与作用
Activity是Android四大组件之一,用于管理用户界面,对应一种程序窗口,实现数据的交互;
(2)活动的创建
所有活动继承Activity类,在onCreate方法中进行初始化的操作
(3)四大组件
Activity:活动组件,有用户界面
Service:服务组件,实现后台与多线程操作
Content Provider:内容提供者组件,主要用于不同程序间数据的共享
Broadcast:广播组件,主要发广播(消息),动态控制程序的执行,增强程序功能
注:四大组件必须在注册文件Androidmanifest.xml中注册方可使用;
2.活动的基本用法
(1)创建与注册活动
创建一个活动同时创建一个与之对应的布局文件.xml
在Androidmanifest.xml注册文件中注册活动,格式如下:
<Activity android:name=”com.yhc.test.Login” />
(2)活动组件隐含的方法
startActivity():切换活动
finish():销毁活动
getIntent():获取一个Intent对象
3.使用Intent在活动之间切换及传值
(1)含义与作用
本意为”意图”,作用是四大组件之间进行通信,即四大组件之间交互,还可以传递数据;使用格式如下:
Intent it=new Intent(OneActivity.this,TwoActivity.class);//定义跳转的活动
it.putExtras(“userName”,”tom”);//传递数据
it.putExtras(“password”,”123”);//传递数据
startActivity(it);
finish();//销毁当前活动
(2)Intent常用的隐含的动作(action),格式如下
String st="13120007507";
//打电话动作,有拨号键盘
1)Intent it1=new Intent(Intent.ACTION_CALL);
startActivity(it1);
//直接打电话
2)Intent it2=new Intent(Intent.ACTION_DIAL);
it2.setData(Uri.parse("tel:"+st));
startActivity(it2);
//发送彩信,发送数据用putExtra()方法来设置
3)Intent it3=new Intent(Intent.ACTION_SEND);
Uri uri=Uri.parse("content://media/external/images/media/yhc1");
it3.putExtra("sms_body","你好吗,我想你啦!");//设置发送的文字
it3.putExtra(Intent.EXTRA_STREAM, uri);//设置图片的地址
it3.setType("image/png");//设置发送数据类型
startActivity(it3);//执行发送
//发送电子邮件
4)Intent it4=new Intent(Intent.ACTION_SENDTO);
Uri uria=Uri.parse("mailto:yhc@qq.com");
it4.setData(uria);
startActivity(it4);
//打开一个新窗口,用于上网设置
5)Intent it5=new Intent(Intent.ACTION_VIEW);
Uri urib=Uri.parse("http://www.baidu.com");
it5.setData(urib);
startActivity(it5);
//删除应用程序
6)Intent it6=new Intent(Intent.ACTION_DELETE);
//Uri uric=Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/yhc.apk"));
Uri urid=Uri.fromParts("package","com.yhc.happyfist",null);
it6.setData(urid);
startActivity(it6);
//恢复删除的应用程序包
7)Intent it7=new Intent(Intent.ACTION_UNINSTALL_PACKAGE);
Uri urie=Uri.fromParts("package","com.yhc.happyfist",null);
it7.setData(urie);
startActivity(it7);//恢复删除的包
8)Uri smsToUri = Uri.parse("smsto:10000");//发短信
Intent its = new Intent(Intent.ACTION_SENDTO, smsToUri);
its.putExtra("sms_body", "测试发送短信");
startActivity(its);
注意:调用Intent的动作完成系统的功能,必须在Androidmanifest.xml配置文件中注册对应的权限,比如:上网权限,获取手机电池电量状态权限
<manifest>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BATTERY_STATS"/>
<application>
.....
</application>
</manifest>
4.Handler:分发机制类
(1)执行(分发)Runnable对象,实现多种操作的功能
Handler hd=new Handler();
hd.post(rnb);//执行Runnable对象rnb
hd.postDelayed(rnb,2000);//延时执行Runnable对象rnb
hd.removeCallbacks(rnb);//移除Runnalbe对象rnb
(2)在线程之间传递消息(数据),实现线程之间通信,同时解决子线程不能直接更新主线程的问题;
注意:关于android线程
主线程,UI线程:管理用户界面的线程,一般是直接继承了Activity的类,只能主线程才能更新UI;
子线程,非UI线程:实现多任务操作,增强程序功能,但不能更新UI;
比如:Handler在线程间传递数据的案例
Handler hd=new Handler();
a.在子程线中部分代码:
Message msg=new Message();
msg.obj=”我是子线程中的数据”;
msg.what=0;//消息标识,表示是哪个子线程发的
hd.sendMessage(msg);
b.在主线程中的部分代码:
Handler hd=new Handler(){
//接收子线程传递的数据,同时更新UI
public void handlerMessage(Message msg){
switch(msg.what){
case 0:
String st=msg.getData().toString;
tvdisp.setText(st);
break;
}
}};
5.活动的生命周期
1)返回栈:stack用任务管理Task
2)活动状态:运行,暂停,停止,销毁
3)活动的生命周期
生命周期:指的是一个活动从创建到销毁的过程,对应7个方法:
onCreate,onStart,onRestart,onResume,onPause,onStop
,onDestroy
除了onRestart方法单独运行,其它回调方法均成对执行
◎三大生存期:
a.完整生存期onCreate-onDestroy;//活动从创建到消亡过程
b.可见生存期onStart-onStop;//活动从可见到不可见的过程
c.前台生存期onResume-onPause;//与用户交互的过程
各回调方法的执行过程:
◎活动初始化时执行的顺序:onCreate->onStart->onResume;
a.当从一个活动切换到另一个活动:onPasue->onCreate(第二个活动)->onStop(第一个活动)
b.当从第二个活动切换回第一个活动:
onRestart->onStart->onResume
c.当第一个要销毁时的回调
onPause->onStop->onDestroy