当前位置: 编程技术>移动开发
本页文章导读:
▪Activity的起动与通信 Activity的启动与通信
Activity是Android组件中最基本也是最常见的组件,一般情况下一个Activity就是对应一个单独的屏幕。
注:一下代码中父Activity用parent表示,子Activity用child表示(子Activity对应.........
▪ 在mediaserver增多新的Service注意事项 在mediaserver增加新的Service注意事项
frameworks/base/cmds/servicemanager/service_manager.c 把新增加的 service 加入到许可列表。
frameworks/base/media/mediaserver/main_mediaserver.cpp 加入新 service 的构造代码。
......
▪ 自定义控件用法跟一些常用页面效果 自定义控件用法和一些常用页面效果
自定义控件用法和一些常用页面效果
原文:http://www.devdiv.com/thread-63456-1-1.html
......
[1]Activity的起动与通信
来源: 互联网 发布时间: 2014-02-18
Activity的启动与通信
Activity是Android组件中最基本也是最常见的组件,一般情况下一个Activity就是对应一个单独的屏幕。
注:一下代码中父Activity用parent表示,子Activity用child表示(子Activity对应的Java文件为child.java)。
一.启动Activity
要启动一个新的Activity,有以下三个步骤(在父Activity中执行)
1.新建一个Intent(有两种方法)
方法①:
Intent intent = new Intent(); intent.setClass(parent.this, child.class);
方法②:
Intent intent = new Intent(parent.this, child.class)
2.启动Activity(有两种方法)
方法①:
startActivity(intent);
方法②:
startActivityForResult(intent, 0); //当第2个参数大于等于时,将会在子Activity关闭时调用父Activity的onActivityResult()函数
以上两个方法的差异在于可以在方法②启动的Activity关闭时,回调数据给启动它的父Activity,进而实现Activity之间的通信。(稍后将会讲述)
3.在AndroidManifest.xml文件中注册Activity
在AndroidManifest.xml文件下的“<application></application>”标签之间填入一个新的<activity>标签,例:
<activity android:name=".child" > </activity>
其中,<activity>标签里可以加入“android:them”属性来设置该Activity的样式。
二.Activity之间的通信
Activity之间有两种通信方式
方式①:父Activity向子Activity传递信息
//在父Activity创建子Activity时执行 Intent intent = new Intent(parent.this, child.class); Bundle bundle = new Bundle(); bundle.putString("msg", msg); //msg为要传递的信息(String类型) intent.putExtras(bundle); startActivity(intent);
//在子Activity中获取数据 String msg = this.getIntent().getExtras().getString("msg");
方式②:子Activity关闭后,要回调数据给父Activity
//在父Activity创建子Activity时执行 Intent intent = new Intent(parent.this, child.class); Bundle bundle = new Bundle(); bundle.putString("msg", msg); //msg为要传递的信息(String类型) intent.putExtras(bundle); startActivityForResult(intent, 0); //当第2个参数大于等于时,将会在子Activity关闭时调用父Activity的onActivityResult()函数
//在子Activity关闭时 Intent intent = getIntent(); Bundle bundle = new Bundle(); bundle.putString("msg",msg); //msg为要传递的信息(String类型) intent.putExtras(bundle); setResult(RESULT_OK,intent); finish();
//在父Activity中加入onActivityResult函数,以接收回调的信息 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data_intent){ super.onActivityResult(requestCode, resultCode, data_intent); if(resultCode == RESULT_CANCELED) setTitle("cancel"); else if (resultCode == RESULT_OK){ Bundle bundle = data_intent.getExtras(); if(bundle != null){ //获取子Activity传送的数据 String msg = bundle.getString("msg"); } } }
[2] 在mediaserver增多新的Service注意事项
来源: 互联网 发布时间: 2014-02-18
在mediaserver增加新的Service注意事项
- frameworks/base/cmds/servicemanager/service_manager.c 把新增加的 service 加入到许可列表。
- frameworks/base/media/mediaserver/main_mediaserver.cpp 加入新 service 的构造代码。
[3] 自定义控件用法跟一些常用页面效果
来源: 互联网 发布时间: 2014-02-18
自定义控件用法和一些常用页面效果
自定义控件用法和一些常用页面效果
原文:http://www.devdiv.com/thread-63456-1-1.html
最新技术文章: