android5个进程等级

1.Activity process(critical priority):活动进程(前台进程)

2.Visible process(High priority):可见进程

3.Started Service process(High priority)

4.Background process(Low priority)

5.Empty process(Low priority)

退出进程:

System.exit(8);//系统进程正常退出

Process.killProcess(Process.myPid);//类似于垃圾回收

Activity创建过程:

1.建立Activity类及定义属性及内部方法;

2.注册Activity到manifast中;

3.在启动中使用onCreat()实现业务:

  (1)界面定义

  (2)setContentView()加载页面;

//将layout压缩成View
View view=this.getLayoutInflater().inflate(R.layout.activity_activity_demo, null);

Intent:

Intent有两种:Explicit intents(明确的意图);Implicit intents (含蓄的意图)

Explicit intents:通过组件名启动

Implicit intents:通过匹配manifest file中的Intent filter来启动组件,若匹配结果仅有一项,直接启动;若多项匹配,根据弹出的dialog进行选择

1.Explicit intents

Intent属性:Component:启动Explicit intents必不缺少的

     //显示启动Intent,必须指定Intent属性Component,Component属性需要指定ComponentName//1.直接创建时指定Intent intent=new Intent(ActivityDemoActivity.this, ActivityIntentDemo.class);Intent intent=new Intent();//2.通过ComponentName构造器来指定;只须指定包名与类名就可以唯一确定组件名ComponentName componentName=new ComponentName("androidstudy.ActivityDemo","androidstudy.ActivityDemo.ActivityIntentDemo");ComponentName componentName=new ComponentName(ActivityDemoActivity.this,ActivityIntentDemo.class);ComponentName componentName=new ComponentName(ActivityDemoActivity.this,"androidstudy.ActivityDemo.ActivityIntentDemo");intent.setComponent(componentName);//3.setClass()与setClassName()指定intent.setClass(ActivityDemoActivity.this, ActivityIntentDemo.class);intent.setClassName(ActivityDemoActivity.this, "androidstudy.ActivityDemo.ActivityIntentDemo");intent.setClassName("androidstudy.ActivityDemo","androidstudy.ActivityDemo.ActivityIntentDemo");startActivity(intent);

返回Intent传递参数是否成功

调用startActivityForResult(intent, 1234);

intent是传递的Intent,1234为RequestResult,成功后回调函数protected void onActivityResult(int requestCode, int resultCode, Intent data) ;

在新的Activity 中通过调用函数setResult(5678,mIntent);设置回调的resultCode与Intent

//调用Intent的Activity
public void demo(View view){        //显示启动Intent,必须指定Intent属性Component,Component属性需要指定ComponentName//1.直接创建时指定//Intent intent=new Intent(ActivityDemoActivity.this, ActivityIntentDemo.class);intent=new Intent();//2.通过ComponentName构造器来指定;只须指定包名与类名就可以唯一确定组件名//ComponentName componentName=new ComponentName("androidstudy.ActivityDemo","androidstudy.ActivityDemo.ActivityIntentDemo");//ComponentName componentName=new ComponentName(ActivityDemoActivity.this,ActivityIntentDemo.class);//ComponentName componentName=new ComponentName(ActivityDemoActivity.this,"androidstudy.ActivityDemo.ActivityIntentDemo");//intent.setComponent(componentName);//3.setClass()与setClassName()指定intent.setClass(ActivityDemoActivity.this, ActivityIntentDemo.class);//intent.setClassName(ActivityDemoActivity.this, "androidstudy.ActivityDemo.ActivityIntentDemo");//intent.setClassName("androidstudy.ActivityDemo","androidstudy.ActivityDemo.ActivityIntentDemo");intent.putExtra("STUDY", "hello 阳光 ");startActivityForResult(intent, 1234);}protected void onActivityResult(int requestCode, int resultCode, Intent data) {if(resultCode==5678){Toast.makeText(ActivityDemoActivity.this, data.getExtras().getString("STUDY"), Toast.LENGTH_LONG).show();System.out.println(intent.getStringExtra("STUDY"));}super.onActivityResult(requestCode, resultCode, data);};
//接收Intent的Activity
public void click(View view){mIntent.putExtra("STUDY", "hello moon");//设置返回值setResult(5678,mIntent);//关闭此Activityfinish();}

2.Implicit intents

                //隐式启动Intent//启动电话Activity,Action:Intent.ACTION_DIAL       Intent intent=new Intent();intent.setAction(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:15169091171"));startActivity(intent);//启动电话Activity,Action:Intent.ACTION_CALLIntent intent=new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:15169091171"));startActivity(intent);

通过代码分析 Action:Intent.ACTION_DIAL与Activity,Action:Intent.ACTION_CALL区别:

  DIAL启动的Action并不会直接拨号,需用户进行确然拨号;

  ACTION_CALL启动的Action可直接进行拨号,但需要在manifest.xml文件中加上权限<uses-permission android:name="android.permission.CALL_PHONE"/>

                Intent intent=new Intent();intent.setAction("moon.testDemo");intent.setData(Uri.parse("http://www.hao123.com"));startActivity(intent);
xml:<activity android:name=".ActivityIntentDemo"><intent-filter><action android:name="moon.testDemo"/><category android:name="android.intent.category.DEFAULT"/><data android:scheme="http"/></intent-filter></activity>

备注:1.虽然Activity中并没有设置category属性,但默认设置属性为DEFAULT,所以在manifest.xml文件中要添加

<category android:name="android.intent.category.DEFAULT"/>,否则,运行会出现错误。

2.若        SaveInstanceState()函数会自动保存我们提供android:id的空间

2.状态恢复onRestoreInstanceState()或onCreat():onResume()之前调用

备注:

1.重构onSaveInstanceState()与onRestoreInstanceState()函数时,需调用父类函数;

2.onRestoreInstanceState()函数不一定会被调用,一般恢复函数使用onCreat();

3.由于onSaveInstanceState()函数不一定会被调用,所以一般存储短暂的状态,存储长期状态一般使用onPause();

ConfigurationChanges

获取configuration Configuration cfg=getResources().getConfiguration()

Activity基类:

FragmentActivity、AccountAuthenticatorActivity(实现账户管理界面)、TabActivity(Tab界面)、ListActivity(列表界面)、LauncherActivity(Activity列表界面)、PreferenceActivity(程序参数设置存储界面)、AliasActivity(别名Activity基类,用于开始别人时结束自己)、ExpandableListActivity(可扩展列表界面)

转载于:https://www.cnblogs.com/Eudora/p/3513663.html

Activity与Intent相关推荐

  1. 应用程序基础知识:activity和intent——Android开发秘籍

    应用程序基础知识:activity和intent --Android开发秘籍 v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#defaul ...

  2. Android Activity和Intent机制学习笔记

    转自:http://www.cnblogs.com/feisky/archive/2010/01/16/1649081.html Activity Android中,Activity是所有程序的根本, ...

  3. [转]Android Activity和Intent机制学习笔记

    Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/f ...

  4. 常见的Activity Action Intent常量

    Intent的中文意思是"意图,目的"的意思,可以理解为不同组件之间通信的"媒介"或者"信使". 目标组件一般要通过Intent来声明自己的 ...

  5. Activity与Intent机制的学习笔记--转自feisky

    Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/f ...

  6. 2011/05/26 Unable to resolve activity for: Intent错误的解决方法

    今天我继续学习编写robotium的测试程序.目标是前些天在网上下来的android的一个扫雷源码(类名为test,包名为jim.test).我的测试程序(类名为testTest,包名为jim.tes ...

  7. 【ZT】Android Activity和Intent机制学习

    Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/f ...

  8. Activity和Intent,打电话,发送短信

    在Android开发过程中,相信你对Intent这个东西并不陌生,它的作用非常广泛,可以用来传递广播,启动另一个Activity,甚至启动另一个应用程序,注意,有一点非常重要,就是可以在一个应用程序只 ...

  9. Android学习笔记(七):多个Activity和Intent

    根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...

最新文章

  1. 【WebMisCentral WMC】基于Extjs 4.2x的企业级用户授权认证中心系统(SSO+AM+SM),多租户SAAS应用...
  2. 一个webservice的初级例子
  3. linux svn强制注释,svn强制提交时添加注释
  4. mysql blob 字段_MySQL中TEXT与BLOB字段类型的区别
  5. Android的联通性---USB主机模式(三)
  6. 2020年 Google 开发者大会可以预约了
  7. python web生产环境_2020年了,python的web framework sanic 可以考虑生产环境部署了么?...
  8. python写标准api_用python写api
  9. SURF源码分析之fasthessian.h和fasthessian.cpp
  10. PHP中的ZIP压缩与解压
  11. kali字典WiFi
  12. 【管理】日报,周报,会议记录模板
  13. Spring Tool Suite开发环境搭建
  14. 如何增加mysql字段长度_增加数据库字段长度
  15. 网络环路导致公司网络瘫痪问题排查
  16. 《非凡的公主希瑞》(She-Ra Princess of Power)[93集全][数码修复][国英双语][RMVB]
  17. 北斗GPS系统在车辆管理系统中的运用与北斗GPS车辆管理调度系统平台建设方案硬件设备
  18. 机器学习常用算法归详细纳整理
  19. 『已解决』.NET报错:所生成项目的处理器框架“MSIL”与引用“wdapi_dotnet1021”的处理器架构“AMD64”不匹配
  20. win11中VMware开启虚拟机电脑蓝屏的解决方法

热门文章

  1. ubuntu开启mysql日志记录
  2. src漏洞挖掘|一个谎言需要无数谎言来弥补
  3. ngx_lua模块API说明
  4. hadoop集群中datanode启动几秒钟自动关闭
  5. TensorFlow学习笔记(十六)tf.random_normal
  6. Tensorflow从入门到精通之:Tensorflow基本操作
  7. JVM调优系列:(二)JVM运行时数据区域
  8. Python常见十六个错误集合,你知道那些?
  9. cisco 生成树协议PVST+
  10. at org.apache.coyote.http11.AbstractOutputBuffer.checkLengthBeforeWrite