自学安卓开发基础总结2_四大组件_Activty

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

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值