安卓开发 activity和intent初步学习

安卓开发 主要是以activity为基础

若要实现一个activity  必须要在AndroidManifest.xml这个文件进行注册

1 <activity
2             android:name=".FirstActivity"
3             android:label="This is the first activity which i code">
4             <intent-filter>
5                 <action android:name="android.intent.action.MAIN" />
6                 <category android:name ="android.intent.category.LAUNCHER"/>
7             </intent-filter>
8</activity>

<intent-filter>是一个意图筛选器  android.intent.action.MAIN和android.intent.category.LAUNCHER 就表明这是主活动和第一个启动的活动

intent可以用作两个activity直接的连接

1          Intent intent=new Intent(SecondActivity.this,ThirdActivity.class);
2                 startActivity(intent);

这是显式调用两个活动

如果隐式调用 则要把action和category对应起来

1 public void onClick(View v) {
2
3                    Intent intent=new Intent("com.example.activitytest.ACTION_START");
4                    intent.addCategory("com.example.acivitytest.MY_Category");
5                    startActivity(intent);
6                 }
7             });

如上建立一个Intent对象  实例化的时候传入一个字符串 就是在AndroidManifest.xml注册的action 每个活动的action只能有一个 而category可以有多个

如果intent不添加Category 那么默认的Category就是android.intent.category.DEFAULT

上文代码调用活动的AndroidManifest.xml如下

1 <activity
2              android:name=".SecondActivity">
3              <intent-filter >
4                  <action android:name="com.example.activitytest.ACTION_START"/>
5                  <category android:name="android.intent.category.DEFAULT"/>
6                  <category android:name="com.example.acivitytest.MY_Category"/>
7              </intent-filter>
8</activity>

上面是一个activity启动另一个activity

如果要在两个activity之间传递消息呢? 那就要用intent的putExtra方法

1           String data ="hello ";
2                 Intent intent=new Intent(SecondActivity.this,ThirdActivity.class);
3                 intent.putExtra("test_data", data);
4                 startActivity(intent);

在ThirdActivity中要这样接受

1         Intent intent=getIntent();
2         String data=intent.getStringExtra("test_data");
3         Log.d("ThirdActivity",data);                    

如果要从上一层返回给上一层呢?

那么在启动活动的时候不懂使用startActivity方法 而是要用startActivityForResult 并且多传入一个key进行对应

1 @Override
2             public void onClick(View v) {
3                 Intent intent=new Intent(SecondActivity.this,ThirdActivity.class);
4                 startActivityForResult(intent,1);
5             }

返回的时候要重写一个onBackPressed方法

1     @Override
2     public void onBackPressed(){
3         Intent intent=new Intent();
4         intent.putExtra("data_return", "hello second");
5         setResult(RESULT_OK,intent);
6         finish();
7     }

而在返回以后同样要重写一个接受的方法onActivityResult  有三个参数 如下代码

 1 protected void onActivityResult(int requestCode,int resultCode,Intent data)
 2     {
 3         switch(requestCode)
 4         {
 5             case 1:if(resultCode==RESULT_OK){
 6                 String returnedData=data.getStringExtra("data_return");
 7                 Log.d("secondActivity",returnedData);
 8             }
 9             break;
10             default:
11         }
12     }
时间: 2024-08-05 04:40:36

安卓开发 activity和intent初步学习的相关文章

Android Activity和Intent机制学习笔记

Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/feisky/archive/2010/01/01/1637427.html,由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState保存其状态). 对于Activity,关键是其生命周期的把握(如下图),其次就是状态的保存和恢复(onSaveInstanceState onR

【转】Android Activity和Intent机制学习笔记----不错

原文网址:http://www.cnblogs.com/feisky/archive/2010/01/16/1649081.html Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/feisky/archive/2010/01/01/1637427.html,由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState保存其状态

安卓开发 activity的生命周期以及启动模式

Activity生命周期 安卓活动由一个返回栈管理 安卓活动有四个状态 1.运行状态 当一个活动位于栈顶的时候,这个活动就处于运行状态,也就是和用户进行交互的那个界面. 2.暂停状态 当活动不处于栈顶,但依然可见.意思就是这个活动没有被完全覆盖,上面有一层对话框之类的. 3.停止状态 活动不处于栈顶,完全不可见.这个好理解吧,就是用户看不到了. 4.销毁状态 活动从栈中移除了,也就是被用户关闭了. Activity共有七个回调方法,覆盖了活动整个生命周期 1.onCreate() 活动创建时调用

安卓开发-Activity中finish() onDestroy() 和System.exit()的区别

Activity.finish()Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法.当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放.因为移出了栈,所以当你点击手机上面的“back”按键的时候,也不会再找到这个Activity.Activity.onDes

安卓开发-Activity中finish() onDestroy() 和System.exit()的区别(转)

Activity.finish()Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法.当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放.因为移出了栈,所以当你点击手机上面的“back”按键的时候,也不会再找到这个Activity.Activity.onDes

安卓开发之左侧滑动菜单学习

左侧滑动窗口是很多app应用经常用到的,学习它也是很有必要的. 左侧滑动xml的布局: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:lay

转载 -安卓开发-Activity中finish() onDestroy() 和System.exit()的区别

Activity.finish()Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法.当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放.因为移出了栈,所以当你点击手机上面的“back”按键的时候,也不会再找到这个Activity.Activity.onDes

安卓开发 Activity入门

生命周期 Activity包含5种状态,涉及7种方法 1. 启动状态 2. 运行状态 *** 即使内存不足,Android先销毁栈底的Activity,来确保当前Activity正常运行 3. 暂停状态  (可见,无法获取焦点 4. 停止状态  (完全不可见 5. 销毁状态 OnCreat 创建时调用,初始化设置 OnStart  Activity即将可见时调用 OnResume 获取焦点开始与用户交互时调用 OnPause  在当前Activity被其他Activity覆盖或锁屏时调用 OnS

activity(工作流)初步学习记录

1.概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”. 2.Activity介绍 Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执行流程语言框架.Activiti基于Apache许可的开源